के बिना ResourceConfig का यूआरएल वेब.एक्सएमएल से जर्सी 2.7 के साथ रिसोर्सकॉन्फिग का उपयोग करके पूरी तरह से जावा कॉन्फ़िगरेशन में माइग्रेट किया गया और टॉमकैट 7 पर तैनाती कर रहा है। उसके बाद मैं इसका उपयोग करके सेवाओं तक पहुंचने में सक्षम नहीं हूं यूआरएल कि मैं web.xml दृष्टिकोण के साथ उपयोग कर रहा था। मुझे समझ में नहीं आता कि संसाधन कॉनफिग पथ को कैसे प्रभावित कर रहा है।किसी भी जर्सी एप्लिकेशन का यूआरएल बिना किसी वेब.एक्सएमएल
मेरे पिछले 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 फैली हुई है:
MyRESTAPIApp.java
@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");
}
}
मेरी संसाधनों में से एक है:
FlagResource.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।
टोमकैट सामान्य रूप से युद्ध फ़ाइल के नाम से वेब संदर्भ रूट पथ ले रहा था, लेकिन मुझे नहीं पता कि जावा कोड आधारित कॉन्फ़िगरेशन का उपयोग करते समय यह बदलता है या नहीं।
GET http://localhost:8080/my.app/my-resource?level=1
रिटर्न 404