0

Webサービスとして公開されているステートレスセッションBeanがあります。2つのメソッドがあり、どちらにも@webmethodアノテーションがあります。ただし、Webサービスとして公開されているのはメソッドの1つだけです。誰かがこの振る舞いの理由を指摘できますか?以下のコードを見つけてください:

@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メソッドのみがWebサービスとして公開され、processPathEventメソッドは公開されません。

ありがとうございました。

4

1 に答える 1

0

問題を解決できました。

@webservice アノテーションに「endpointInterface」プロパティを設定しました。このインターフェースに processPathEvent() メソッドを追加するのを忘れていました。そのため、@webmethod アノテーションを追加してもメソッドは公開されませんでした。

于 2012-04-19T18:40:43.993 に答える