2011-10-07 6 views
2

Axis genrated stub을 사용하여 웹 서비스 호출을 제공하려고합니다.faultString : java.lang.IllegalArgumentException : 인수 유형 불일치

응답을 얻으려고 시도 할 때 아래 예외가 발생하여 실행 중입니다.

내가하여 내 응답 메시지를 볼 때

String responseMsg = stub._getCall().getMessageContext().getResponseMessage().getSOAPEnvelope().toString(); 

에서 System.out.println (responseMsg)를;

SOAP 형식으로 올바른 응답을 제공합니다. 아무도 내가 사전에 문제 감사를 만드는 곳에서 나를 도울 수 있습니다.

Zuned

AxisFault 
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException 
faultSubcode: 
faultString: java.lang.IllegalArgumentException: argument type mismatch 
faultActor: 
faultNode: 
faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:java.lang.IllegalArgumentException: argument type mismatch 
    at org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:157) 
    at org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:249) 
    at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:509) 
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 
    at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171) 
    at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) 
    at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236) 
    at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) 
    at org.apache.axis.client.Call.invoke(Call.java:2467) 
    at org.apache.axis.client.Call.invoke(Call.java:2366) 
    at org.apache.axis.client.Call.invoke(Call.java:1812) 
    at com.hps.webservice.SOAPInterfaceBindingStub.getStatus(SOAPInterfaceBindingStub.java:852) 
    at com.hps.ws.HPSStatusManagerJob.getApplicationStatusResponse(HPSStatusManagerJob.java:265) 
    at com.hps.ws.HPSStatusManagerJob.updateStatus(HPSStatusManagerJob.java:84) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273) 
    at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:264) 
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) 
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202) 
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525) 
Caused by: java.lang.IllegalArgumentException: argument type mismatch 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.axis.utils.BeanPropertyDescriptor.set(BeanPropertyDescriptor.java:142) 
    at org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:75) 
    ... 22 more 

    {http://xml.apache.org/axis/}hostname:admin-PC 

java.lang.IllegalArgumentException: argument type mismatch 
    at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) 
    at org.apache.axis.client.Call.invoke(Call.java:2470) 
    at org.apache.axis.client.Call.invoke(Call.java:2366) 
    at org.apache.axis.client.Call.invoke(Call.java:1812) 
    at com.hps.webservice.SOAPInterfaceBindingStub.getStatus(SOAPInterfaceBindingStub.java:852) 
    at com.hps.ws.HPSStatusManagerJob.getApplicationStatusResponse(HPSStatusManagerJob.java:265) 
    at com.hps.ws.HPSStatusManagerJob.updateStatus(HPSStatusManagerJob.java:84) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273) 
    at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:264) 
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) 
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202) 
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525) 
Caused by: java.lang.IllegalArgumentException: argument type mismatch 
    at org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:157) 
    at org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:249) 
    at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:509) 
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 
    at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171) 
    at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) 
    at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236) 
    at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) 
    at org.apache.axis.client.Call.invoke(Call.java:2467) 
    ... 14 more 
Caused by: java.lang.IllegalArgumentException: argument type mismatch 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.axis.utils.BeanPropertyDescriptor.set(BeanPropertyDescriptor.java:142) 
    at org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:75) 
    ... 22 more 
+0

과 - 어떤 속성, 어떤 종류가 있습니까 , 메소드 서명 등은 무엇입니까? – Thomas

+0

토마스에게 감사드립니다. 문제가 해결되었습니다. 오류는 WSDL의 한 필드와 wsdl genrated 클래스의 DATA 유형 차이 때문이었습니다. –

+0

어떻게이 문제를 해결 했습니까? 새로운 wsdl을 얻었거나 클래스를 생성하기 위해 몇 가지 방법을 사용 했습니까? –

답변

0

문제가 로컬 WSDL 이렇게 I 먼저 로컬 WSDL 업데이트 업데이트하고 다시 클래스 genrated있는 아니었다.

: 1.4 축 내 경우와 같이 파일을 생성

1

또 하나의 방법이 있기 때문에 호환성 문제 (그것이 무엇인지 확실하지)의 작동되지 않았습니다.

C : 우리는 당신의 JDK의 bin 폴더로 이동으로 명령 wsimport의 -s의 DestinationPath의 WSDL 경로 을 실행 스텁을 생성하기 위해 JDK에 wsimport.exe 붙박이 사용할 수 있습니다 \ 프로그램 파일 \ 자바 \ jdk1.6.0 빈> wsimport의 \ -s C는 : 그것은 어떻게 보이는지 \ SID가 복사 붙여 넣기 폴더 구조 및 클래스를 생성 한 후 http://?WSDL

\

당신이 메시지를 작성하는 방법에 대한 자세한 정보를 제공 할 수
관련 문제