Jersey 2.7에서 ResourceConfig를 사용하고 Tomcat 7에서 배포하면 web.xml에서 완전히 Java 구성으로 마이그레이션되었습니다. 이후 동일한 서비스를 사용하여 서비스에 연결할 수 없습니다. url을 web.xml 접근 방식과 함께 사용하고 있습니다. ResourceConfig가 경로에 어떤 영향을 미치는지 이해할 수 없습니다.web.xml없이 ResourceConfig를 사용하는 Jersey 응용 프로그램의 URL
내 이전의 web.xml
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>my.app</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.mypackage.resource,com.mypackage.providers</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.scanning.recursive</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
</init-param>
<init-param>
<param-name>org.glassfish.jersey.server.ServerProperties.BV_SEND_ERROR_IN_RESPONSE</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>my.app</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
ResourceConfig를 확장
내 구성 클래스입니다 : 내 자원의
@ApplicationPath("")
public class MyRESTAPIApp extends ResourceConfig{
public MyRESTAPIApp() {
packages("com.mypackage.resource", "com.mypackage.providers");
register(org.glassfish.jersey.filter.LoggingFilter.class);
property("jersey.config.beanValidation.enableOutputValidationErrorEntity.server", "true");
}
}
하나입니다
MyRESTAPIApp.java :
,363,210FlagResource.java
@Path("my-resource")
public class FlagResource {
private MyService myService = new MyService();
@GET
@Produces(MediaType.APPLICATION_JSON)
public FlagResource getFlagResource(@NotNull @QueryParam("level") Long level) {
FlagResource flagResource = myService.getFlagResource(level);
return flagResource;
}
}
나가라고 생성하고 전쟁 : my.app.war.
Tomcat은 평소와 같이 war 파일의 이름에서 웹 컨텍스트 루트 경로를 사용하고 있었지만 Java 코드 기반 구성을 사용할 때 변경되는지 여부는 알 수 없습니다.
GET http://localhost:8080/my.app/my-resource?level=1
404