2016-07-15 69 views
0

我試圖得到一個非常簡單的澤西Web服務Weblogic上12.2.1.x運行,但我失敗的很慘澤西1.13 Web服務12.2.1.x

在我web.xml我有以下

<?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> 

而且Web服務資源本身非常簡單

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(); 
    } 

} 

而且我有專門的球衣1.13依賴條件在我的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> 

並在此oracle page的建議,我有以下我的weblogic.xml部署與我戰

<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> 

戰爭部署好的,但在嘗試訪問webservice時我剛剛收到一個未找到響應

有一件事我注意到是我看到在服務器日誌如下(我看不出有任何異常)

(當它部署到WebLogic 12.1.3或Glassfish的3/4相同的URI BTW工作)
<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.> 

對我來說,這似乎表明它忽略了我在我的weblogic.xml中設置的內容。我究竟做錯了什麼?是否有可能在weblogic 12.2.1.x中使用jersey 1 web服務?

回答

1

它看起來像是與12.2.1.x兼容的問題。

你有降級的WebLogic版本,或升級到澤西2的選項(你爲什麼不使用澤西2的方式?)

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

+0

是的,我看到後我沒」確定它是否是官方不支持的聲明或不。至於爲什麼澤西島1,它是幾年前開發的網絡服務,以上只是一個簡單的例子,它會給出與真實的問題相同的問題。 – PDStat