2012-08-28 3 views
2

WebServiceGatewaySupport를 사용하여 사용자 정의 비 정렬 화 프로세스를 작성하려고 Spring과 jaxb에서 작업 중입니다.Spring jaxb WebServiceGatewaySupport 구현체 java.lang.IllegalArgumentException

수업 시간은 아래와 같습니다. " 'URI'는 비워 둘 수 없습니다 java.lang.IllegalArgumentException가"나는 다음과 같은 방법

getWebServiceTemplate().sendSourceAndReceiveToResult 

그것은 메시지와 함께 충돌을 호출 할 때 문제는 응답입니다. 그것은 비록 내가 StringResult를 사용하고 있지만 xml을 파싱하고 xml/soap 응답 오류를 찾는 것처럼 보인다.

public class WUResultGateway extends WebServiceGatewaySupport{ 

    private WebServiceTemplate webServiceTemplate; 

    private SourceExtractor ratingResponseExtractor = new WUResponseExtractor(); 

    public WUResultGateway(WebServiceTemplate webServiceTemplate){ 
      this.webServiceTemplate = webServiceTemplate; 
    } 
    private Source marshall(SendRDCResults results) throws IOException{ 

     StringResult resp = new StringResult(); 
     Marshaller marshaller = webServiceTemplate.getMarshaller(); 
     marshaller.marshal(results, resp); 

     return new ResourceSource(new ByteArrayResource(resp.toString().getBytes())); 
    } 

    public Object wuResponse(SendRDCResults results) throws IOException{ 
     //StringSource source = new StringSource(); 
     Result result = new StreamResult(); 
     StringResult strResult = new StringResult(); 
     boolean flag = getWebServiceTemplate().sendSourceAndReceiveToResult(marshall(results), strResult); 
     return result; 
    } 

} 

서버의 응답을 변경하지 않고, 나는 오류없이의 문자열 또는 간단한 XML 형식으로 값을 얻을 싶어요. 누구든지 도와 줄 수 있습니까?

답변

1

setDefaultUri (webServiceTemplate.getDefaultUri());

public Object wuResponse(SendRDCResults results) throws IOException{ 
      //StringSource source = new StringSource(); 
      Result result = new StreamResult(); 
      StringResult strResult = new StringResult(); 
      setDefaultUri(webServiceTemplate.getDefaultUri()); 
      boolean flag = getWebServiceTemplate().sendSourceAndReceiveToResult(marshall(results), strResult); 
      return result; 
     } 
을 다음과 같이

마침내 보인다

관련 문제