我们有一个网络服务,它包含在耳内的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.
可能遗漏的任何想法?
答案 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>