2

私の Response.xsd には、次のような多くの要素があります。

...
<xs:element type="xs:string" name="carModel" minOccurs="0">
</xs:element>
...

から生成JAXBClassesしまし.xsdた。結果:

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        //...
        "carModel"
        //...
    })
    public static class Car{

    //...
    protected String carModel;
    //...getter and setters.

    }

私の WebService 応答の構築:

  Car car = new Car();
  //other params
  car.setCarModel(null); 

生成された応答では、次のようになります。

 <ax23:carModel xsi:nil="true"/>

しかし、私は完全にタグがまったくないことを期待carModelしています。完全にスキップしたい

何が間違っているのですか?Whyはデフォルトでwhenにnullなります。nilnillable = false

よくわかりませんが、@Xstian に求めていたものは次のとおりです。

私の一部web.xml

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>
        org.apache.axis2.transport.http.AxisServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

私のWEB-INF/services/CarService/META-INF/services.xml

<service name="CarService" >
<Description>
    Please Type your service description here
</Description>
<messageReceivers>
    <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass" locked="false">com.foo.ws.CarService</parameter>
</service>
4

1 に答える 1

1

この注釈を使用@XmlElement(nillable=false)

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    //...
    "carModel"
    //...
})
public static class Car{

//...
@XmlElement(nillable=false)
protected String carModel;
//...getter and setters.

}
于 2015-07-16T07:56:45.060 に答える