2013-06-14 3 views
1

Я использую Glassfish v2 (я знаю, что он старый). Теперь, когда я перешел на Джерси 2.0, при запуске она дает мне это исключение:Может ли Джерси 2.0 работать с Glassfish 2.x?

com.sun.jersey.spi.container.servlet.ServletContainer 
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1578) 
    at org.apache.catalina.core.StandardWrapper.loadServletClass(StandardWrapper.java:1273) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1049) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1023) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4969) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5376) 
    at com.sun.enterprise.web.WebModule.start(WebModule.java:345) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:986) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:970) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:704) 
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1649) 
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1254) 
    at com.sun.enterprise.web.WebContainer.loadJ2EEApplicationWebModules(WebContainer.java:1177) 
    at com.sun.enterprise.server.TomcatApplicationLoader.doLoad(TomcatApplicationLoader.java:141) 
    at com.sun.enterprise.server.ExtendedApplicationLoader.doLoad(ExtendedApplicationLoader.java:134) 
    at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:240) 
    at com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:336) 
    at com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:210) 
    at com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:645) 
    at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:959) 
    at com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:943) 
    at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:467) 
    at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182) 
    at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308) 
    at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:231) 
    at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298) 
    at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132) 
    at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108) 

Кто-нибудь знает, почему/как это дает эту ошибку? Это не имя пакета, используемое для любого кода Джерси, который я мог найти. Можно ли использовать Джерси 2.0 на Glassfish 2.x?

ответ

0

Я не пробовал использовать Джерси 2.0 на Glassfish 2.x, но было значительное переименование пакетов из com.sun.jersey -> org.glassfish.jersey от 1.x до 2.x соответственно.

Похоже, что ваш (web.xml) config по-прежнему использует старые имена классов. То, что вы, вероятно, хотите что-то вроде этого:

<web-app> 
    <servlet> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>javax.ws.rs.Application</param-name> 
      <param-value>org.foo.rest.MyApplication</param-value> 
     </init-param> 
     ... 
    </servlet> 
    ... 
</web-app> 

Заканчивать последнюю Джерси Информация о развертывании here для других особенностей.

Смежные вопросы