2012-02-26 53 views
2

我已经安装了一个非常简单的测试应用程序,以在Jboss AS 7.1上尝试RESTeasy。在jboss AS 7.1上调试JAX-RS服务注册

环境:

  • jboss-as-7.1.0.Final
  • 日食3.7和JBoss工具
  • 行家3

我跟着教程中的步骤,但没有得到相同的结果。 Web应用程序已正确部署,它显示在管理控制台中,但不能按预期运行。

服务器总是告诉我,404资源不可用时,我尝试访问http://localhost:8080/SeamSertalVision/services/test

有4个文件在整个项目:

  • 的pom.xml
  • 的web.xml
  • RestApplication.java
  • Login.java

pom.xml中有一个依赖它解决了罚款:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>ch.sertal</groupId> 
    <artifactId>SertalVision</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>SertalVision</name> 
    <description /> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <resteasy.version>2.3.1.GA</resteasy.version> 
    </properties> 

    <build> 
     <sourceDirectory>${basedir}/src</sourceDirectory> 
     <outputDirectory>${basedir}/build/classes</outputDirectory> 
     <resources> 
      <resource> 
       <directory>${basedir}/src</directory> 
       <excludes> 
        <exclude>**/*.java</exclude> 
       </excludes> 
      </resource> 
     </resources> 
     <plugins> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <!-- Include the JBoss Maven repository so we can access JBoss artifacts --> 
    <repositories> 
     <repository> 
      <id>jboss-public-repository</id> 
      <name>JBoss Repository</name> 
      <url>https://repository.jboss.org/nexus/content/groups/public</url> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 

    </repositories> 

    <pluginRepositories> 
     <pluginRepository> 
     <id>jboss-public-repository</id> 
     <name>JBoss Repository</name> 
     <url>https://repository.jboss.org/nexus/content/groups/public</url> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
     </pluginRepository> 
    </pluginRepositories> 

    <dependencies> 
     <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jaxrs</artifactId> 
     <version>${resteasy.version}</version> 
     <scope>provided</scope> 
     </dependency> 

    </dependencies> 

</project> 

web.xml中为空:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" 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>Sertal Vision</display-name> 

</web-app> 

的RestApplication.java是空的:

package ch.sertal.vision.server; 

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

@ApplicationPath("/services") 
public class RestApplication extends Application { 
} 

登录.java只包含一种测试方法:

package ch.sertal.vision.server; 

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("/test") 
public class Login { 

    @GET 
    @Produces(MediaType.TEXT_HTML) 
    public Response login() { 
     return Response.ok("logged in").build(); 
    } 

} 

这就是整个事情,正如它在教程中所描述的(我相信)。部署工作正常。如果我将一个welcome-file条目添加到web.xml中,它将显示出来。

这里是JBoss日志TEH申请后部署:

WARNING: -logmodule is deprecated. Please use the system property 'java.util.logging.manager' or the 'java.util.logging.LogManager' service loader. 
11:35:17,819 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA 
11:35:18,016 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA 
11:35:18,060 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.0.Final "Thunder" starting 
11:35:18,721 INFO [org.xnio] XNIO Version 3.0.3.GA 
11:35:18,722 INFO [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http) 
11:35:18,732 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA 
11:35:18,743 INFO [org.jboss.remoting] JBoss Remoting version 3.2.2.GA 
11:35:18,755 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers 
11:35:18,758 INFO [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem 
11:35:18,770 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem. 
11:35:18,779 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem 
11:35:18,780 INFO [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem 
11:35:18,781 INFO [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem 
11:35:18,796 INFO [org.jboss.as.security] (MSC service thread 1-10) JBAS013100: Current PicketBox version=4.0.6.final 
11:35:18,803 INFO [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension 
11:35:18,829 INFO [org.jboss.as.connector] (MSC service thread 1-9) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.7.Final) 
11:35:18,856 INFO [org.jboss.as.naming] (MSC service thread 1-11) JBAS011802: Starting Naming Service 
11:35:18,861 INFO [org.jboss.as.mail.extension] (MSC service thread 1-12) JBAS015400: Bound mail session [java:jboss/mail/Default] 
11:35:18,911 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3) 
11:35:18,937 INFO [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-4) JBoss Web Services - Stack CXF Server 4.0.1.GA 
11:35:19,014 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-2) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080 
11:35:19,288 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-13) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS] 
11:35:19,556 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-8) JBAS015012: Started FileSystemDeploymentService for directory /Development/jboss-as-7.1.0.Final/standalone/deployments 
11:35:19,561 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found SeamSertalVision.war in deployment directory. To trigger deployment create a file called SeamSertalVision.war.dodeploy 
11:35:19,574 INFO [org.jboss.as.remoting] (MSC service thread 1-5) JBAS017100: Listening on /127.0.0.1:9999 
11:35:19,574 INFO [org.jboss.as.remoting] (MSC service thread 1-11) JBAS017100: Listening on /127.0.0.1:4447 
11:35:19,664 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.0.Final "Thunder" started in 2145ms - Started 134 of 205 services (70 services are passive or on-demand) 
11:35:19,676 INFO [org.jboss.as.server.deployment] (MSC service thread 1-14) JBAS015876: Starting deployment of "SeamSertalVision.war" 
11:35:20,028 INFO [org.jboss.web] (MSC service thread 1-13) JBAS018210: Registering web context: /SeamSertalVision 
11:35:20,066 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "SeamSertalVision.war" 

我的问题是:我如何可以验证我的web服务被注册?他在日志中没有任何提示,但也没有错误。一定有什么问题,但我看不到它是什么。

我有一个应用程序在Tomcat与泽西和那里的日志清楚地显示哪些类执行RESTful服务。

谢谢你的帮助。

回答

4

你不会看到,如果REST服务启动时注册,因为该服务只启动点播,然后你会看到这样的事情:

INFO [org.jboss.resteasy.cdi.CdiInjectorFactory] (http--127.0.0.1-8080-1) 
     Found BeanManager at java:comp/BeanManager 
INFO [org.jboss.resteasy.spi.ResteasyDeployment] (http--127.0.0.1-8080-1) 
     Deploying javax.ws.rs.core.Application: 
     class my.rest.JaxRsActivator$Proxy$_$$_WeldClientProxy 

我不看显著错误的配置,但可能是因为缺少WEB-INF/beans.xml

要获得JBoss7的工作示例使用REST服务,您可以使用下面的原型创建一个新的项目:org.jboss.spec.archetypes:jboss-javaee6-ear-webapp:7.0.2.CR2 (你必须从7.0.2.CR2改变所有的JBoss依赖的版本7.1.0.Final)。