Я хочу запустить простое веб-приложение с использованием CXF, но не используя пружину. Я смог реализовать сервлет, используя Джерси, и теперь я пытаюсь использовать CXF. Ниже приведен мой web.xml.JAX-RS с CXF без использования пружины
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Output Socket</display-name>
<servlet>
<servlet-name>JAXServlet</servlet-name>
<servlet-class>
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
</servlet-class>
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAXServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
И в pom.xml у меня есть следующие зависимости.
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>2.6.1</version>
</dependency>
Я не уверен в этой конфигурации.
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
Как только я разворачиваю файл войны в своем tomcat, я получаю следующее исключение.
java.lang.ClassNotFoundException: org.myCompany.servlet
я делаю ничего плохого здесь. Любая помощь будет оценена
Я нашел проблему. Это была глупая ошибка. Я только поставил пакет, а не полное имя пути класса. Причина, по которой я сказал, что у меня есть два класса Java в одном пакете. Есть ли способ назвать только имя пакета? И если вы знаете, можете ли вы объяснить, нужны ли мне все эти зависимости? Мне просто нужен серверный бэкэнд для запуска, когда URL-адрес называется – user3919392
. Вы не можете назвать только имя пакета, полное имя класса требуется, но вы можете перечислить все ваши классы, разделенные запятой, как это: org.myCompany.servlet.MyClass1, org.myCompany.servlet.MyClass2 .... Я не уверен, что вам нужна зависимость cxf-rt-frontend-jaxws, потому что это для веб-служб SOAP. – jMounir
жаль, что у меня это получилось. Большое спасибо – user3919392