Jersey에서 TomEE 서버로 간단한 RESTful 웹 서비스를 실행하는 데 문제가 있습니다. (이것은 내가 따르는 튜토리얼이다 :, 의존성을 위해 Maven을, TomEE JAX-RS를 내 서버로 사용하고있다.) 서블릿 클래스 내 web.xml 파일에서 파생Jersey를 TomEE에서 RESTful 웹 서비스로 사용
org.apache.openejb.OpenEJBException: Unable to load servlet class: org.glassfish.jersey.servlet.ServletContainer: org.glassfish.jersey.servlet.ServletContainer
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:2113)
at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1843)
at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:360)
at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:401)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:962)
at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1214)
at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087)
at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
: 나는 서버를 실행하면, 나는 다음과 같은 오류 얻을
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>RestTest</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<!-- Register resources and providers under com.vogella.jersey.first package. -->
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.vogella.jersey.first</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
을 그리고이 프로젝트의 메이븐의 pom.xml 내 종속이다 파일 : 나는 HAVN 경우
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.14</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.14</version>
<scope>provided</scope>
</dependency>
이 (그리고 그 꼭대기에, 나는 지난 몇 년 동안 마이크로 소프트 서버 기술을 사용하고있다)를 TomEE JAX-RS 서버를 사용하여 내 처음이다, 그래서 의견을주십시오 충분한 정보를 제공하지 않았다. 솔루션에 대한 작업을 할 수 있습니다.
고마워요. 그것은 실제로 많은 의미가 있습니다. 나는 "제공된"것을 제거했다. 그러나 이제는 새로운 오류가 발생합니다 : java.lang.NoSuchMethodError : "javax.ws.rs.core.Application.getProperties() Ljava/util/Map ;. 나에게 이것은 JAX-RS 1.X TomEE JAX-RS가 2.x 대신 해당 버전을 사용하고있을 수 있습니까? 표준 TomEE 웹 프로필을 사용하고 클래스 패스에 저어 진을 포함시켜 작동시킬 수 있습니까? – MichaelCleverly
어떤 TomEE 에디션과 버전을 사용하고 있습니까? JAX-RS 2.0은 Java EE 7이며, TomEE는 Java EE 6입니다. 따라서 어떤 경우 에든 귀하의 유스 케이스가 작동하지 않을 것입니다. –
그게 문제입니다. 그 마지막 코멘트를 귀하의 답변에 추가 하시겠습니까? 그렇다면 그것을 받아 들일 것입니다. – MichaelCleverly