2011-01-21 1 views
2

에 축 아파치 클라이언트를 호출하는 방법 :나는 자바에서 아파치 축 웹 서비스에 연결하려는 내가 일부 잘못된 매개 변수가 있지만 어떤 모르는 자바

import org.apache.axis.client.Call; 
import org.apache.axis.client.Service; 
import javax.xml.namespace.QName; 

public class Test_Web_Service 
{ 

public static void main(String [] args) throws Exception { 

    try { 

      String endpoint = "http://www.w3schools.com/webservices/tempconvert.asmx"; 

      Service service = new Service(); 
      Call call= (Call) service.createCall(); 

      call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true)); 
      call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://tempuri.org/CelsiusToFahrenheit"); 

      call.setTargetEndpointAddress(new java.net.URL(endpoint)); 
      call.setOperationName(new QName("http://tempuri.org/CelsiusToFahrenheit","CelsiusToFahrenheit")); 

      String ret = (String) call.invoke(new Object[] {"20"}); 
      System.out.println("Sent '20', got '" + ret + "'"); 

    } catch (Exception e) { 
      System.err.println(e.toString()); 
    } 
} 
} 


웹 서비스 링크 : http://www.w3schools.com/webservices/tempconvert.asmx
ret 변수에서 메시지 오류가 발생합니다. QName에 잘못된 매개 변수가 있기 때문입니다.

답변

1

이 클라이언트 코드 beetween 불일치를 임피던스 예정이며, service.server 요청을 해독 및 기본 값으로

당신이 대신

call.setOperationName(new QName("http://tempuri.org/","CelsiusToFahrenheit")); 
call.addParameter(new QName("http://tempuri.org/","Celsius"),XMLType.XSD_STRING,ParameterMode.IN); 
String ret = (String) call.invoke(new Object[] {"20"}); 

메모를 시도 할 수 있습니다 처리를 계속 할 수 없습니다 namespaceURI의 변화.