2013-07-23 4 views
1

Ok. 제목은 정말로 그것을 모두 말합니다.wsimport는 int 대신 정수로 xsd : int를 바인드합니다.

Java 응용 프로그램에서 호출하는 매우 큰 SOAP 서버가 있습니다. 내 인생을 더 쉽게 만들기 위해 wsimport를 사용하여 서비스의 소스와 jar를 생성했습니다. 방금 문제가 발생했습니다. wsdl의 모든 xsd : int 유형은 정수 유형으로 필요로 할 때 java 코드에서 int 유형으로 구문 분석됩니다. 이유는 int 중 일부는 null로 설정해야하지만 int 형식은 null이 될 수 없으므로 그렇게 할 수 없습니다.

나는 현재를 통해 가고 손이 필드를 변경,하지만 난 wsimport의 명령

여기에 내 현재 wsimport의 명령이에 agrument를 통해 할 수있는 쉬운 방법이 있는지 알고 싶습니다.

요소에 대한
<xsd:complexType name="SubPackageSell"> 
    <xsd:complexContent> 
    <xsd:extension base="tns:APIObject"> 
    <xsd:sequence> 
    <xsd:element name="sp" type="tns:SubPackage"/> 
    <xsd:element name="value" type="xsd:int"/> 
    <xsd:element name="days" type="xsd:int"/> 
    <xsd:element name="date" type="xsd:string"/> 
    <xsd:element name="combine" type="xsd:boolean"/> 
    </xsd:sequence> 
    </xsd:extension> 
    </xsd:complexContent> 
</xsd:complexType> 
+0

속성 = "필요한"'그렇지 않으면 될 것 원시적'int' 될 것'java.lang.Integer' – DannyMo

+0

나는 복잡한 유형 중 하나의 예를 추가했습니다. 보시다시피 관계에 열거 된 요구 사항은 없습니다. – Pyromanci

+0

죄송합니다. 요소가 아닌 속성을 사용하고 있다고 가정합니다. – DannyMo

답변

2

, minOccurs="0"를 지정하고 wsimport를 대신 원시적 intjava.lang.Integer을 생성한다 : 감사

여기
wsimport.exe -d E:\ServiceWSBuild -p com.example.wsdl -s E:\Service\src -verbose http://wsdl.example.com/?wsdl 

또한이 작업을 수행 사용자 정의 유형 중 하나의 예이다. minOccursmaxOccurs의 기본값은 1입니다. 따라서 기본 값은 int입니다. 예를 들어 : 사용`와

<xsd:element name="value" type="xsd:int" minOccurs="0"/> 
+0

아래 내 대답을 참조하십시오. 기본적으로 wsdl까지입니다. 즉, 클라이언트 코드 (예 :)가 생성되는 방식을 제어 할 수 없습니다. – sataniccrow