我已经被困在一个问题上几天了,我即将放弃。需要你的帮助! :)
这就是事情:
我正在开发一个Web应用程序,我正在尝试创建移动版本(至少使用Jersey的Web服务)。
所以现在它看起来像这样:
我认为这是最好的方法(任何评论?)。
我现在正在使用Jersey,轻松创建我的WebServices。
我成功地设法划分了网络环境,我可以获得我的资源,一切都很好。我现在需要做的是从WebAppMobile项目访问WebApp包。我已经在构建路径中包含了引用(使用Eclipse),并且它正在编译好。
我遇到的唯一问题是我无法实例化WebApp战争中的任何对象,它给了我一个NoClassDefFoundError:
错误500:java.lang.NoClassDefFoundError:my.package.my.class
最奇怪的是我实际上可以达到一些对象的静态局部变量,这意味着我的应用程序可以看到它们......至少,我认为它可以......
我认为这来自Jersey类路径,因为它正在进行自己的重定向以获取我的资源。这是我的web.xml(来自WebAppMobile项目):
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>WebAppMobile</display-name>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.classpath</param-name>
<param-value>my.webapp</param-value> (here's just a try)
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
<param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>my.webapp;my.webappmobile</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
</web-app>
有任何线索吗? 甚至可以在这两个包之间建立连接吗?
非常感谢!
答案 0 :(得分:0)
我(临时?)通过从我的WebApp项目创建JAR并将其包含在我的WebAppMobile项目中来修复它。 然后我认为没有办法从另一场战争中实例化对象,但如果有人设法做到这一点,我会有兴趣知道如何:)