在EAR中打包时,Web服务不可用

时间:2013-12-19 12:56:19

标签: java web-services jboss7.x

我们有一个网络服务,它包含在耳内的ejb-jar中。然后将该jar部署到JBoss 7.2.0.Final实例。

根据this JBoss documentation使用会话bean上的webservice注释就足够了。

因此,webservice看起来像这样:

@WebService(name = "TestWS", targetNamespace="http://test.com/ws")
@WebContext(contextRoot="/test-ws", urlPattern="/*", transportGuarantee="NONE", secureWSDLAccess=false)
@Stateless  
public class TestWS
{
  @WebMethod
  public String sayHello()
  {
    return "hello";
  }
}

当耳朵展开时爆炸一切正常。问题是,在部署打包的ear(.ear-file)时,服务似乎不可用。

管理控制台在以下两种情况下都会显示此信息:

Context: test-ws
Type: JAXWS_EJB3
WSDL Url: http://localhost:8080/test-ws?wsdl

在启动期间,在以下两种情况下都会记录以下内容:

 [org.jboss.ws.cxf.metadata] (MSC service thread 1-4) JBWS024061: Adding service  
   endpoint metadata: id=TestWS
   address=http://localhost:8080/test-ws
   implementor=com.test.TestWS
   serviceName={http://test.com/ws}TestWSService
   portName={http://test.com/ws}TestWSPort
   annotationWsdlLocation=null
   wsdlLocationOverride=null    
   mtomEnabled=false
 ...
[org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-9) Setting the server's publish address to be http://localhost:8080/test-ws

当耳朵爆炸时,开口http://localhost:8080/test-ws?wsdl检索wsdl,当耳朵被包装时,我得到以下结果:

JBWEB000065: HTTP Status 404 - /test-ws
JBWEB000309: type JBWEB000067: Status report
JBWEB000068: message /test-ws
JBWEB000069: description JBWEB000124: The requested resource is not available.

可能遗漏的任何想法?

1 个答案:

答案 0 :(得分:1)

我在许多项目中也遇到过这种情况。以下任何一种方法都可以工作:)

1。)在EAR中打包一个WAR,并拥有一个web.xml,它将为您的webservices提供启动

2.。)尝试在META-INF/application.xml中加载jar,它将完美地包含您的JAR文件。

application.xml将如下所示

<?xml version="1.0" encoding="UTF-8"?>
<application 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/application_5.xsd" version="5">
  <display-name>project-name</display-name>
  <module>
    <java>your_jar_file_name</java>
  </module>
</application>