Я застрял в проблеме на несколько дней, и я собираюсь сдаться.Нужна ваша помощь!:)
Вот в чем дело:
Я работаю над веб-приложением и пытаюсь создать мобильную версию (по крайней мере, веб-службы с использованием Джерси).
Итак, теперь это выглядит так:
- Сервер
- WebApp EAR
- WebAppMobileEAR
Я думаю, что это лучший способ сделать это (любой комментарий?).
Я сейчас использую Джерси, чтобы легко создавать свои веб-сервисы.
Мне удалось разделить веб-контексты, и я могу добраться до своих ресурсов, все хорошо.Теперь мне нужно получить пакеты WebApp из проекта WebAppMobile.Я включил ссылку в путь сборки (используя Eclipse), и она компилируется нормально.
Единственная проблема, с которой я столкнулся, это то, что я не могу создать экземпляр объекта, находящегося в войне WebApp, он дает мне NoClassDefFoundError:
Ошибка 500: java.lang.NoClassDefFoundError: my.package.my.class
Самое странное, что я действительно могу достичь некоторых статических локальных объектовпеременные, что означает, что мое приложение может их видеть ... По крайней мере, я думаю, что оно может ..
Я думаю, что это происходит из classpath Джерси, потому что оно делает свое собственное перенаправление для достижения моих ресурсов.Вот мой 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>
Есть подсказка?Возможно ли даже установить связь между этими двумя пакетами?
Большое спасибо!