2015-10-07 175 views
0

我在設置JAVA Web服務中的值時遇到了問題。我已經完成了Web服務客戶端的設置值,但我收到了錯誤消息Required:javax.xml.bind.JAXBElement;找到java.lang.String。必需:javax.xml.bind.JAXBElement <java.lang.String>; found java.lang.String

我開發Web服務客戶端存根和下面是從

Service service = Service.create(url, qname); 
    // Extract the endpoint interface, the service "port". 
     ObjectFactory daget = service.getPort(ObjectFactory.class); 
     ComBdata NewComdata = (ComBdata) daget.createProd(); 
     NewComdata.setNumberID(rd.getString(1)); 

從客戶存根產生

public void setNumberID (JAXBElement<String> value) { 
    this. numberID = value; 
    } 

存根示例腳本我該如何解決這個問題?我是新來JABX

+0

不知道你的代碼是什麼'rd.getString(1)',我猜它返回'String'。但是你的'setNumberID'方法需要一個'JAXBElement'類型的參數。 – SubOptimal

+0

如何設置或配置JAXBElement然後提供它? – JBs

回答

0

此方法創建具有一定價值的JAXBElement:

<T> JAXBElement<T> wrap(String ns, String tag, T o){ 
    QName qtag = new QName(ns, tag); 
    Class<?> clazz = o.getClass(); 
    @SuppressWarnings("unchecked") 
    JAXBElement<T> jbe = new JAXBElement(qtag, clazz, o); 
    return jbe; 
} 

您的通話將

JAXBElement<String> jbw = wrap(?, ?, rd.getString(1)); 

,但我不能告訴你命名空間或元素標籤。

相關問題