@webmethod - 不将该方法公开为Web服务(JAX-WS)

时间:2012-04-17 10:26:14

标签: web-services wsdl jax-ws

我有一个无状态会话bean,它作为webservice公开。有两种方法,都有@webmethod注释。但是,只有一种方法被公开为webservice。任何人都可以指出这种行为的原因,请找到以下代码:

@WebService(portName = "interfaceSoapHTTPPort", serviceName = "interfaceService", targetNamespace = "http://com.demo.service/interfaceservice", endpointInterface = "com.demo.service.interfacePortType")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
@Stateless(mappedName = "InterfaceBean")

public class InterfaceBean {
    @PostConstruct
    @PostActivate
    public void initializeBean() {

    }

    @WebMethod
    public void processPathEvent(XngEvent pathXngEvent) throws WSException {

    }   

    @WebMethod
    public void portAssignmentUpdate(WSHeader wsHeader,
            PortAssignmentUpdateRequest portAssignmentUpdateRequest,
            Holder<WSResponseHeader> wsResponseHeader,
            Holder<PortAssignmentUpdateResponse> portAssignmentUpdateResponse)
            throws WSException {

    }
}

只有portAssignmentUpdate方法公开为webservice,而不是processPathEvent方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

我能够解决问题。

我们在@webservice注释中设置了“endpointInterface”属性。我忘了将processPathEvent()方法添加到此接口。因此,即使添加了@webmethod注释,该方法也未公开。