У меня есть существующий проект веб-службы SOAP, и я хочу расширить его, чтобы он также поддерживал службы RESTful.
Когда я создаю пустой веб-проект и следую инструкциям, используя найденное руководство здесь , все работает просто отлично, но в моем существующем проекте я получаю ошибку java.lang.ClassNotFoundException: org.glassfish.jersey.internal.inject.Binder
.Я позаботился о том, чтобы поместить все библиотеки в папку WEB-INF и включить их, как я это сделал с тестовым проектом.
Вот часть моего web.xml:
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.rest</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
А вот мой класс UserService:
@Path("/UserService")
public class UserService {
User user = new User();
@GET
@Path("/users")
@Produces(MediaType.TEXT_PLAIN)
public String getUsers() {
return user.getHello();
}
}
Я получаю сообщение об ошибке при попытке вызвать его с помощью Postman с URL: http://localhost:8080/project/rest/UserService/users
Я не могу воспроизвести это в другомпроект.Я пытался использовать те же библиотеки и ту же версию Java EE (7.0), и она прекрасно работает.