【发布时间】:2016-09-28 17:59:29
【问题描述】:
我正在将作为 Web 服务公开的无状态 EJB 从 JBoss7 AS 迁移到 WildFly 10(当然我有点晚了)。
以前可以通过 http://localhost:8080/vmwWS/vmw 访问 Web 服务,迁移到 WildFly 后,我可以使用 http://localhost:8080//vmwWS/WSVMWBean,但我还没有找到改变这一点的方法。
这是网络服务类
[...]
@Interceptors(TracingInterceptor.class)
@Stateless
@WebService(endpointInterface = "com.mydomain.WSVMW")
@WebContext(contextRoot="/vmwWS", urlPattern ="/vmw", authMethod="BASIC", secureWSDLAccess = false)
@SecurityDomain("JBossWS")
@RolesAllowed({ "Read", "Write" })
public class WSVMWBean implements WSVMW {
[...]
界面:
[...]
@WebService(name = "vmw")
@SOAPBinding(style = Style.DOCUMENT)
@Local
public interface WSVMW {
[...]
还有 jboss-webservice.xml:
<?xml version="1.0" encoding="UTF-8"?>
<webservices xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.com/xml/ns/javaee/jbossws-web-services_1_0.xsd"
version="1.1">
<context-root>vmwWS</context-root>
<port-component>
<ejb-name>WSVMWBean</ejb-name>
<port-component-name>WSVMWBean</port-component-name>
<port-component-uri>/vmw</port-component-uri>
<auth-method>BASIC</auth-method>
</port-component>
</webservices>
日志说:
22:16:59,520 INFO [org.jboss.ws.cxf.metadata] (MSC service thread 1-8) JBWS024061: Adding service endpoint metadata: id=WSVMWBean
address=http://localhost:8080/<ejb-jar-name>/vmwWS/WSVMWBean
implementor=com.mydomain.WSVMWBean
serviceName={http://vmw.mydomain.com/}/vmwWS
portName={http://vmw.mydomain.com/}WSVMWBeanPort
annotationWsdlLocation=null
wsdlLocationOverride=null
mtomEnabled=false
如何恢复之前的行为?
【问题讨论】:
-
经过更多调查后,jboss-webservice.xml 被忽略。通过将 @WebService(name="vmwWS/vmw", endpointInterface = "com.mydomain.WSVMW") 添加到 Web 服务无状态 bean,我能够将地址的第二部分更改为 /vmwWS/vmw
标签: java web-services ejb wildfly