2016-07-15 36 views
0

ich einen sehr einfachen Jersey Web-Service zu bekommen versuchen auf Weblogic 12.2.1.x laufen, aber ich bin kläglich scheitereJersey 1.13 Web-Service auf Weblogic 12.2.1.x

In meinem web.xml ich habe folgend

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <display-name>jersey1test</display-name> 
    <servlet> 
     <servlet-name>ServletAdaptor</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.jersey1test</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>ServletAdaptor</servlet-name> 
     <url-pattern>/srv/*</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout>30</session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

Und die webservice Ressource selbst ist sehr einfach

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.core.Response; 

@Path("jersey1test") 
public class Jersey1Resource 
{ 

    @Path("hello") 
    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response helloJersey() 
    { 
     return Response.status(Response.Status.OK).entity("Hello from Jersey 1").build(); 
    } 

} 

Und ich habe ausschließlich Trikot 1,13 dependecies in meinem pom

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>1.13</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-servlet</artifactId> 
    <version>1.13</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey.contribs</groupId> 
    <artifactId>jersey-multipart</artifactId> 
    <version>1.13</version> 
</dependency> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.5</version> 
</dependency> 

Und auf diesen oracle page vorgeschlagen, wie ich folgende in meinem weblogic.xml Einsatz mit meinem Krieg

<wls:container-descriptor> 
    <wls:prefer-application-packages> 
     <!— jersey-bundle-*.jar-> 
     <wls:package-name>com.sun.jersey.*</wls:package-name> 
     <wls:package-name>com.sun.research.ws.wadl.*</wls:package-name> 
     <wls:package-name>com.sun.ws.rs.ext.*</package-name> 

     <!— Jackson-*.jar -> 
     <wls:package-name>org.codehaus.jackson.*</wls:package-name> 

     <!— jettison-*.jar -> 
     <wls:package-name>org.codehaus.jettison.*</wls:package-name> 

     <!— jsr311*.jar -> 
     <wls:package-name>javax.ws.rs.*</wls:package-name> 

     <!— asm.jar -> 
     <wls:package-name>org.objectweb.asm.*</wls:package-name> 
    </wls:prefer-application-packages> 
</wls:container-descriptor> 

Der Krieg entfaltet feinen haben, aber wenn Sie den Webservice zuzugreifen versuchen, erhalte ich nur eine Antwort nicht gefunden (die gleiche URI funktioniert btw, wenn dieser eingesetzt wird 12.1.3 oder Glassfish 3/4 bis weblogic)

Eine Sache, die ich bemerkt habe ist ich folgendes in den Server-Logs zu sehen (ich kann keine Ausnahmen sehen)

<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192509> <Changing servlet class from com.sun.jersey.spi.container.servlet.ServletContainer (web.xml) to org.glassfish.jersey.servlet.ServletContainer.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.ResourceConfig because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.ApplicationAdapter because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.server.impl.application.DeferredResourceConfig because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.ClassNamesResourceConfig because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.DefaultResourceConfig because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.PackagesResourceConfig because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.servlet.WebAppResourceConfig because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.ClasspathResourceConfig because ApplicationPath annotation is not set on it.> 
<15-Jul-2016 08:39:55 o'clock BST> <Warning> <JAXRSIntegration> <BEA-2192510> <Cannot add Jersey servlet for application class com.sun.jersey.api.core.ScanningResourceConfig because ApplicationPath annotation is not set on it.> 

Was mir scheint zu sagen, dass es ignoriert, was ich in meinem weblogic.xml eingestellt habe. Was mache ich falsch? Ist es möglich, einen Webservice von jersey 1 in weblogic 12.2.1.x zu betreiben?

Antwort

1

Es scheint ein Kompatibilitätsproblem mit 12.2.1.x zu bestehen.

Sie haben die Möglichkeit, Ihre Version von WebLogic Herabstufung oder ein Upgrade auf Jersey 2 (warum nicht Sie Jersey 2 durch die Art und Weise verwenden?)

https://community.oracle.com/thread/3923266?start=0&tstart=0

+0

Ja ich diesen Beitrag habe ich wasn‘ t sicher, wenn es eine offizielle nicht unterstützte Aussage war oder nicht. Warum Jersey 1, es ist ein Web-Service, der vor ein paar Jahren entwickelt wurde, das obige ist nur ein einfaches Beispiel, das das gleiche Problem wie das echte geben würde. – PDStat