Web服务调用和泛型,奇怪的行为

时间:2012-09-06 12:27:37

标签: java web-services exception generics soap

我有一个如下所示的Web服务界面:

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface MyWS<T> {    
    @WebMethod Person getRow(int id);

    @WebMethod T insertRow(T a);    
}

真正奇怪的是,如果我还有一个返回Person的方法,insertRow方法才有效。请注意,我不必使用getRowinsertRow工作。

换句话说:当我从客户端程序中仅在Web服务上调用insertRow时,如果我还有一个返回Person的getRow方法,它就会起作用。如果我从Web服务中删除getRow然后再次运行客户端程序,我会遇到以下异常:

Exception in thread "main" javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.internal.SAXException2: class com.myproject.Person nor any of its super class is known to this context.
javax.xml.bind.JAXBException: class com.myproject.Person nor any of its super class is known to this context.]

奇怪,呵呵!

发生了什么事?

0 个答案:

没有答案