Ibm mobilefirst 将应用程序从开发worklight传输到worklight Server Consumer Edition时出错

Ibm mobilefirst 将应用程序从开发worklight传输到worklight Server Consumer Edition时出错,ibm-mobilefirst,Ibm Mobilefirst,我正在使用IBM Worklight环境。我已经使用Worklight Developer studio创建了一个小型应用程序“SampleHybridProject”,并成功地对其进行了测试 现在,当我尝试在Worklight Server Consumer Edition上部署它时,点击以下URL:http://mymachine.com:9080/SampleHybridProject/console 我在浏览器中遇到以下错误: 错误404:com.ibm.ws.webcontainer.

我正在使用IBM Worklight环境。我已经使用Worklight Developer studio创建了一个小型应用程序“SampleHybridProject”,并成功地对其进行了测试

现在,当我尝试在Worklight Server Consumer Edition上部署它时,点击以下URL:
http://mymachine.com:9080/SampleHybridProject/console

我在浏览器中遇到以下错误:

错误404:com.ibm.ws.webcontainer.servlet.exception.NoTargetForURIException:未为uri配置目标servlet:/SampleHybridProject/console

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

以下是我在worklight.properties文件中更改的属性

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>
http://${local.IPAddress}:9080/SampleHybridProject

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

你的liberty日志中是否有部署错误?上下文根上的404通常意味着要么未找到WAR,要么上下文根默认为“SampleHybridProject”以外的内容。如果WAR似乎加载正确,它将在监听的位置输出,类似于:

[AUDIT]CWWKT0016I:可用的Web应用程序(默认\u主机):http://[hostname]:端口/SampleHybridProject/*

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

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

... 

我已经找到问题并解决了。问题是我在console.log文件中遇到了以下错误:

创建URL[jar:file:/C:/ProgramData/IBM/Worklight/WAS85liberty server/wlp/usr/shared/Resource中定义的名为“txManager”的bean时出错‌​rces/lib/worklight jee library.jar!/conf/core.xml]:调用init方法失败;嵌套的异常是java.lang.LinkageError:加载程序约束冲突:加载程序(com/ibm/ws/classloading/internal/UnifiedClassLoader的实例)以前为名为“javax/sql/DataSource”的其他类型启动加载


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

您是否已将.war文件部署到Liberty应用程序服务器?是的,我已将.war文件放置在“C:\Program Files(x86)\IBM\Worklight\server\wlp\templates\servers\defaultServer\apps”文件夹中。对server.xml文件添加了以下更改并重新启动了服务器。我将.war文件放置在错误的位置。现在我把它放在“C:\ProgramData\IBM\Worklight\WAS85liberty server\wlp\usr\servers\worklightServe”中‌​r\apps”,并将以下条目添加到“server.xml”文件中。但是现在在访问“myhostserver:9080/SampleHybridProject/console”控制台时;,我收到以下错误“应用程序类'com.worklight.core.auth.impl.AuthenticationFilter.doFilter():81'worklight项目未在com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter)初始化时引发异常”。‌​java:81)”。任何关于这个错误的想法。每当我尝试打开自定义应用程序的控制台时,我都会在console.log文件中记录以下错误:{创建名为“txManager”的bean时出错,该bean在URL[jar:file:/C:/ProgramData/IBM/Worklight/WAS85liberty server/wlp/usr/shared/resources/lib/Worklight jee library.jar!/conf/core.xml]中定义:调用init方法失败;嵌套异常为java.lang.LinkageError:加载程序约束冲突:加载程序(com/ibm/ws/classloading/internal/UnifiedClassLoader的实例)先前启动了名为“javax/sql/DataSource”的其他类型的加载。}我将.war文件放置在错误位置。现在,我将它放在“C:\ProgramData\IBM\Worklight\WAS85liberty server\wlp\usr\servers\worklightServer\apps”中,并将以下条目添加到“server.xml”文件中。但是现在在访问“”处的控制台时,我收到以下错误“应用程序类'com.worklight.core.auth.impl.AuthenticationFilter.doFilter():81'worklight项目未在com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)处初始化”。任何关于这个错误的想法。每当我尝试打开自定义应用程序的控制台时,我都会在console.log文件中记录以下错误:{创建名为“txManager”的bean时出错,该bean在URL[jar:file:/C:/ProgramData/IBM/Worklight/WAS85liberty server/wlp/usr/shared/resources/lib/Worklight jee library.jar!/conf/core.xml]中定义:调用init方法失败;嵌套异常为java.lang.LinkageError:加载程序约束冲突:加载程序(com/ibm/ws/classloading/internal/UnifiedClassLoader的实例)以前为名为“javax/sql/DataSource”的其他类型启动加载}