2012-04-11 103 views
3

我有工作像这样的网络服务:使用JAXB注解类的JAXWS服务

@WebService(serviceName = "TempService") 
public class TempService { 
    @WebMethod(operationName = "addBarkod") 
    public Boolean addBarkod(@WebParam(name = "barkod") Barkod barkod) { 
    System.out.println(barkod.getBarkodNo()); 
    } 
} 

和Barkod类为:

public class Barkod { 
    private String barkodNo; 
// there are constructors and getters, setters etc. nothing fancy // 
} 

这个结构我的网络服务可以被称为soapUI没有问题。问题是,当我想用​​注释JAXB标注像我的模型类:

@XmlType(name="barkod") 
@XmlRootElement(name="barkod") 
@XmlAccessorType(XmlAccessType.FIELD) 

我可以部署这GlassFish的3.1的soapUI产生新结构新的客户端请求,但说到做“barkod.getBarkodNo( );”在addBarkod操作中,它抛出一个NullPointerException。我看起来像我发送到Web服务的XML不会创建适当的Barkod对象。

我必须做的Web服务类或什么?

+0

你能发布你得到的异常吗? – 2012-04-11 14:43:39

+0

我只是将其粘贴:https://gist.github.com/2359811 – zekzekus 2012-04-11 14:46:44

+0

什么是在'TempService.java:54'导致NPE的空? – 2012-04-11 14:49:40

回答

0

我认为是由于soapUI自动从我的WSDL生成请求而导致的问题。当我使用@XmlRootElement注解我的类而没有命名空间子句时,它不会将给定的XML映射到可能的对象。我分配@XmlRootElemen(namespace =“”),我的问题消失了。

感谢您的回复。

相关问题