2013-04-08 2 views
3

다음과 같은 문제가 있습니다. 나는 입력을위한 많은 매개 변수를 가진 웹 서비스를 만들고 싶다. 그들 중 일부는 더블 타입입니다. 문제는 내 코드에 의존하는 이중 것으로 구문 분석을 시도하기 전에 두 배의 일부가, 따라서 필요하지 않습니다 및웹 서비스에서 빈 매개 변수를 무시하는 방법?

<param xsi:type="xsd:double"></param> 

웹 로직처럼, 비어있는 태그 내 서비스에 전달 될 수 있다는 내가

<faultstring>empty String</faultstring> 
를 얻을 수

<bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0">java.lang.NumberFormatException: empty String 
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011) 
at java.lang.Double.parseDouble(Double.java:540) 

그래서 내 주요 질문은, 어떻게 두 변수에 널 (null)과 같은 빈 태그를 얻을 수있다 그것에 제외

응답? 아니면 WebLogic이 파싱을 시도하기 전에 빈 값을 지정할 수 있습니까? 미리 감사드립니다.

+0

+0

@better_use_mkstemp 이렇게하면 매개 변수가 없다는 WS 예외가 발생합니다. 빈 태그이더라도 그 태그를 제거 할 수는 없지만, WL이 파싱을 시도하지 않고, 빈 태그 값을 null로 가져 가야합니다. – Kiman

+0

이 속성을 추가하십시오 : minOccurs = "0"'(필요에 따라 네임 스페이스를 조정하십시오) – acdcjunior

답변

1

메시지 구조가 정의 된 XSD를 확인하십시오. 메시지 형식에 대한 XSD의 모든 요소에 대해 설정할 수있는 두 가지 다른 아직 특수한 특성에 중점을 둡니다. 이들은 minOccurs 및 nillable입니다. 문제에 대답은 nillable로 속성을 설정에있다 (기본값은 false이다.) "true"로

는 nillable로 수단, nillable로 값 T는/F가 의미하는 것을 볼 수 있습니다 그 요소는 빈 값을 가질 수 있는지 여부 (빈 문자열) 또는 아닙니다.

그래서, nillable로는 참으로

<

등의 요소 이름 = "anyElement"로 설정되어있는 경우 nillable로 = "true"로하여 XSD에서 /> 그 요소는 이러한 < anyEement> </anyElement처럼 될 수 > 또는 < anyElement /> SOAP 요청/응답에 .

하지만 nillable을 false로 설정하면 (기본값 : ) 지금 당장 오류가 발생할 것으로 예상됩니다.

도움이되기를 바랍니다. 감사.

관련 문제