将应用程序从开发工作光源传输到工作光源服务器消费者版时发生错误



我使用的是IBM Worklight环境。我使用Worklight Developer studio创建了一个小应用程序"SampleHybridProject",并成功地进行了测试。

现在,当我试图在Worklight Server消费者版上部署它时,并点击以下URL: http://mymachine.com:9080/SampleHybridProject/console

我的浏览器出现了这个错误:

错误404:com.ibm.ws.webcontainer.servlet.exception.NoTargetForURIException: No target servlet configured for uri:/SampleHybridProject/console

我使用的是Worklight Edition 5.0.6。Worklight服务器默认为"WAS with Liberty profile"。

下面是我在worklight中更改的属性。属性文件。

publicWorkLightHostname=localhost
publicWorkLightProtocol=http
publicWorkLightPort=9080
publicWorkLightContext=/SampleHybridProject
wl.db.type=MYSQL
wl.db.url=jdbc:mysql://mysqlinstalledonmypc:3306/WRKLGHT
wl.db.username=root
wl.db.password=admin

下面是我在application-descriptor.xml中所做的更改:

<worklightServerRootURL>http://${local.IPAddress}:9080/SampleHybridProject</worklightServerRootURL>

你能告诉我我做错了什么或者我需要做什么吗?

我已经找到问题并解决了。问题是我在console.log文件中出现了这个错误:

在URL [jar:file:/C:/ProgramData/IBM/Worklight/WAS85liberty-server/wlp/usr/shared/resou/rces/lib/Worklight -jee-library.jar!/conf/core.xml]中创建名称为'txManager'的bean时出错:init方法调用失败;嵌套异常是java.lang.LinkageError: loader约束违反:loader (com/ibm/ws/classloading/internal/UnifiedClassLoader的实例)先前启动了加载名为"javax/sql/DataSource"的不同类型

这是因为我在项目的server/lib文件夹中有一个jar导致了这个问题。我从server/lib文件夹中删除了jar并重新部署了.war文件。现在控制台正在加载。

您的自由日志中有任何部署错误吗?上下文根上的404通常意味着没有找到WAR,或者上下文根默认为"SampleHybridProject"以外的其他内容。如果WAR看起来正在正确加载,它将输出它正在监听的位置,类似于:

[AUDIT] CWWKT0016I: Web application available (default_host): http://[hostname]:port/SampleHybridProject/*

如果它说上下文根不是SampleHybridProject,您可以在liberty的server.xml中的标记中设置它:

<application id="SampleHybridProject" name="SampleHybridProject" 
    location="SampleHybridProject.war" type="war"
    context-root="SampleHybridProject"> 
    ... 
</application>

相关内容

最新更新