JBOSS에서 JAX-RS 서비스 등록 디버깅하기 7.1
문제
JBoss에서 7.1로 RETEASEY를 시도하기 위해 매우 간단한 테스트 응용 프로그램을 설치했습니다.
환경 :
- jboss-as-7.1.0.final
- jboss 도구가있는 Eclipse 3.7
- maven 3
I은 자습서의 단계를 따르지 만 동일한 결과를 얻지 못했습니다. WebApp가 올바르게 배포되고 관리 콘솔에 나타나지만 의도 한대로 작동하지 않습니다.
서버는 per
http://localhost:8080/SeamSertalVision/services/test
에 액세스하려고 할 때 404 리소스를 사용할 수 없는지 알려줍니다.전체 프로젝트에 4 개의 파일이 있습니다.
- pom.xml
- web.xml
- restabplication.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>
restabplication.java는 비어 있습니다 :
.package ch.sertal.vision.server; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath("/services") public class RestApplication extends Application { }
login.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에 추가하면 표시됩니다.다음은 TEH 응용 프로그램이 배포 된 후 jboss 로그입니다.
.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"
내 질문은 다음과 같습니다. 내 webservice가 등록되고 있음을 어떻게 확인할 수 있습니까? 로그에 힌트가 없지만 오류가 없습니다. 잘못된 것이 있어야하지만 그것이 무엇인지 볼 수는 없습니다.
저지와 함께 Tomcat에 응용 프로그램이 있고 로그는 어떤 클래스가 편안한 서비스를 수행하는지 명확하게 보여줍니다.
도움말 주셔서 감사합니다.
해결책
서비스가 필요할 때만 시작하기 때문에 시작 중에 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
가 누락 될 수 있습니까?
REST 서비스가있는 JBOSS7의 작업 예제를 얻으려면 다음 ARCHETYPE : org.jboss.spec.archetypes:jboss-javaee6-ear-webapp:7.0.2.CR2
를 사용하여 새 프로젝트를 만들 수 있습니다.
7.0.2.CR2
에서 7.1.0.Final
로 모든 JBoss 종속성 버전을 변경해야합니다.