簡體   English   中英

Jersey Web Service在帶有JBOSS AS7的Gatein 3.6中不起作用

[英]Jersey Web Service is not working in Gatein 3.6 with JBOSS AS7

我已經在我的gatein 3.6(使用Jboss AS7)中創建了一個樣板球衣服務器。 以下是創建jersey服務器的步驟。

我在web.xml文件中添加了以下代碼行。

<servlet>
          <servlet-name>Jersey REST Service</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>de.vogella.jersey.first</param-value>
           </init-param>
           <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
           <servlet-name>Jersey REST Service</servlet-name>
           <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>

該類文件是

package de.vogella.jersey.first;

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

    // Plain old Java Object it does not extend as class or implements
    // an interface

    // The class registers its methods for the HTTP GET request using the @GET annotation.
    // Using the @Produces annotation, it defines that it can deliver several MIME types,
    // text, XML and HTML.

    // The browser requests per default the HTML MIME type.

    //Sets the path to base URL + /hello
    @Path("/hello")
    public class Hello {

      // This method is called if TEXT_PLAIN is request
      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String sayPlainTextHello() {
       return "Hello Jersey";
      }

      // This method is called if XML is request
      @GET
      @Produces(MediaType.TEXT_XML)
      public String sayXMLHello() {
       return "" + " Hello Jersey" + "";
      }

      // This method is called if HTML is request
      @GET
      @Produces(MediaType.TEXT_HTML)
      public String sayHtmlHello() {
       return " " + "" + "Hello Jersey" + ""
      + "" + "Hello Jersey" + "" + " ";
      }

    }

但不幸的是,啟動服務器時出現異常

17:17:22,649錯誤[org.apache.catalina.core.ContainerBase。[jboss.web]。[默認主機]。[/ cisms]](MSC服務線程1-6)StandardWrapper.Throwable:com.sun。 jersey.core.spi.scanning.ScannerException:URI vfs的URI方案vfs:/ E:/BMITDevelopment/GateIn-3.6.0.Final-jbossas7/standalone/deployments/cisms.war/WEB-INF/classes/com不支持/ radiant / cisms / workFlow / core /。 此類URI不支持程序包掃描部署。 嘗試使用其他部署機制,例如使用com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:225處的javax.ws.rs.core.Application擴展名顯式聲明根資源和提供程序類。 )[com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:139)的[jersey-bundle-1.4.jar:1.4] [com.sun上的[jersey-bundle-1.4.jar:1.4] .jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:78)[jersey-bundle-1.4.jar:1.4]位於com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:116)[ com.sun.jersey.api.core.PackagesResourceConfig。(PackagesResourceConfig.java:81)的jersey-bundle-1.4.jar:1.4] com.sun.jersey.api上的[jersey-bundle-1.4.jar:1.4]。 core.PackagesResourceConfig。(PackagesResourceConfig.java:92)[jersey-bundle-1.4.jar:1.4]位於com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:677)[jersey-bundle- 1.4.jar:1.4],位於com.sun.jersey.spi.cont com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:206)上的ainer.servlet.WebComponent.createResourceConfig(WebComponent.java:655)[jersey-bundle-1.4.jar:1.4] -com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:342)上的-bundle-1.4.jar:1.4] [com.sun.jersey.com.sun.jersey.bundle-1.4.jar:1.4]。 spi.container.servlet.ServletContainer.init(ServletContainer.java:516)[jersey-bundle-1.4.jar:1.4]在javax.servlet.GenericServlet.init(GenericServlet.java:242)[jboss-servlet-api_3.0_spec org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202)的-1.0.0.Final.jar:1.0.0.Final] [org.apache的[jbossweb-7.0.13.Final.jar:]] .catalina.core.StandardWrapper.load(StandardWrapper.java:1102)[jbossweb-7.0.13.Final.jar:]在org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655)[jbossweb-7.0 .13.Final.jar:]位於org.apache.catalina.core.StandardContext.start(StandardContext.java:3873)[jbossweb-7.0.13.Final.jar:]位於 org.jboss.msc.service上的org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)[jboss-as-web-7.1.1.Final.jar:7.1.1.Final]。 org.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1746)上的ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1811),位於java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java: 886)[rt.jar:1.6.0_30] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)[rt.jar:1.6.0_30] at java.lang.Thread.run(Thread。 java:662)[rt.jar:1.6.0_30]

17:17:22,665錯誤[org.apache.catalina.core.ContainerBase。[jboss.web]。[默認主機]。[/ cisms]](MSC服務線程1-6)Servlet / cisms拋出了load()異常:com.sun.jersey.core.spi.scanning.ScannerException:URI vfs的URI方案vfs:/ E:/BMITDevelopment/GateIn-3.6.0.Final-jbossas7/standalone/deployments/cisms.war/WEB-不支持INF / classes / com / radiant / cisms / workFlow / core /。 此類URI不支持程序包掃描部署。 嘗試使用其他部署機制,例如使用com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:225處的javax.ws.rs.core.Application擴展名顯式聲明根資源和提供程序類。 )[com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:139)的[jersey-bundle-1.4.jar:1.4] [com.sun上的[jersey-bundle-1.4.jar:1.4] .jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:78)[jersey-bundle-1.4.jar:1.4]位於com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:116)[ com.sun.jersey.api.core.PackagesResourceConfig。(PackagesResourceConfig.java:81)的jersey-bundle-1.4.jar:1.4] com.sun.jersey.api上的[jersey-bundle-1.4.jar:1.4]。 core.PackagesResourceConfig。(PackagesResourceConfig.java:92)[jersey-bundle-1.4.jar:1.4]位於com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:677)[jersey-bundle- 1.4.jar:1.4],位於com.sun.jersey.spi.cont com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:206)上的ainer.servlet.WebComponent.createResourceConfig(WebComponent.java:655)[jersey-bundle-1.4.jar:1.4] -com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:342)上的-bundle-1.4.jar:1.4] [com.sun.jersey.com.sun.jersey.bundle-1.4.jar:1.4]。 spi.container.servlet.ServletContainer.init(ServletContainer.java:516)[jersey-bundle-1.4.jar:1.4]在javax.servlet.GenericServlet.init(GenericServlet.java:242)[jboss-servlet-api_3.0_spec org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202)的-1.0.0.Final.jar:1.0.0.Final] [org.apache的[jbossweb-7.0.13.Final.jar:]] .catalina.core.StandardWrapper.load(StandardWrapper.java:1102)[jbossweb-7.0.13.Final.jar:]在org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655)[jbossweb-7.0 .13.Final.jar:]位於org.apache.catalina.core.StandardContext.start(StandardContext.java:3873)[jbossweb-7.0.13.Final.jar:]位於 org.jboss.msc.service上的org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)[jboss-as-web-7.1.1.Final.jar:7.1.1.Final]。 org.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1746)上的ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1811),位於java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java: 886)[rt.jar:1.6.0_30] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)[rt.jar:1.6.0_30] at java.lang.Thread.run(Thread。 java:662)[rt.jar:1.6.0_30]

在此先感謝喬斯尼

將Jersey應用程序從Tomcat遷移到帶有Jersey版本1.9的Wildfly 8(JBossAS)時,我遇到了這個問題。 將Jersey庫版本升級到1.10時已解決。

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.10</version>
</dependency>

我為此寫了一個博客。 另一個論壇回答了該問題,但摘要是您需要在web.xml中禁用resteasy掃描並將jboss-deployment-structure.xml文件添加到META-INF

這兩個文件應該看起來像這樣(按照我在博客中的示例)

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"  
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
      id="WebApp_ID" version="3.0">  
      <display-name>hellows</display-name>  
      <servlet>  
           <servlet-name>hellows servlet</servlet-name>  
           <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>  
           <init-param>  
                <param-name>javax.ws.rs.Application</param-name>  
                <param-value>com.vbranden.HelloApplication</param-value>  
           </init-param>  
           <init-param>  
                <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>  
                <param-value>true</param-value>  
           </init-param>  
           <load-on-startup>1</load-on-startup>  
      </servlet>  
      <servlet-mapping>  
           <servlet-name>hellows servlet</servlet-name>  
           <url-pattern>/*</url-pattern>  
      </servlet-mapping>  
      <context-param>  
           <param-name>resteasy.scan</param-name>  
           <param-value>false</param-value>  
      </context-param>  
      <context-param>  
           <param-name>resteasy.scan.resources</param-name>  
           <param-value>false</param-value>  
      </context-param>  
      <context-param>  
           <param-name>resteasy.scan.providers</param-name>  
           <param-value>false</param-value>  
      </context-param>  
 </web-app>  

jboss-deployment-structure.xml(位於META-INF中)

<?xml version="1.0" encoding="UTF-8"?>  
 <jboss-deployment-structure>  
 <deployment>  
 <exclude-subsystems>  
  <subsystem name="resteasy" />  
 </exclude-subsystems>  
 <exclusions>  
  <module name="javaee.api" />  
  <module name="javax.ws.rs.api"/>  
  <module name="org.jboss.resteasy.resteasy-jaxrs" />  
 </exclusions>  
 <local-last value="true" />  
 </deployment>  
 </jboss-deployment-structure> 

完整的例子在這里

http://blog.vbranden.com/2015/03/creating-jersey-webservice-in-gatein.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM