Hi Daniel, thanks for your help !
Yes, the error was very different. I actually use SOAP header in my
outbound
Messages. The NullPointerException was my fault, but when I fixed
it, the
HolderInInterceptor throw a IndexOutOfBoundsException when calling the
MessageContentsList.getContentsList(message).get(MessagePartInfo
part),
where the parts are got from the SOAP output message.
So I tried this morning with the "apache-cxf-2.1.1-20080520.211236-4"
snapshot, the same error has been thrown.
A Jira issue has already been posted (
https://issues.apache.org/jira/browse/CXF-1568), and I just saw that
it was
assigned to you today !
I send you here my client code and the generated SOAP message which
is ok,
maybe it can help you !
(I'm trying to consume Salesforce.com services through the
partner.wsdl)
cxf generated code of one service's methods :
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@WebResult(name = "createResponse", targetNamespace = "urn:
partner.soap.sforce.com", partName = "parameters")
@WebMethod
public CreateResponse create(
@WebParam(partName = "parameters", name = "create",
targetNamespace
= "urn:partner.soap.sforce.com")
Create parameters,
@WebParam(partName = "DebuggingInfo", mode =
WebParam.Mode.INOUT,
name = "DebuggingInfo", targetNamespace =
"urn:partner.soap.sforce.com",
header = true)
javax.xml.ws.Holder<DebuggingInfo> debuggingInfo,
@WebParam(partName = "DebuggingHeader", mode =
WebParam.Mode.INOUT,
name = "DebuggingHeader", targetNamespace = "urn:partner.soap.sforce.com
",
header = true)
javax.xml.ws.Holder<DebuggingHeader> debuggingHeader,
@WebParam(partName = "MruHeader", mode = WebParam.Mode.INOUT,
name =
"MruHeader", targetNamespace = "urn:partner.soap.sforce.com", header
= true)
javax.xml.ws.Holder<MruHeader> mruHeader,
@WebParam(partName = "QueryOptions", mode =
WebParam.Mode.INOUT,
name = "QueryOptions", targetNamespace =
"urn:partner.soap.sforce.com")
javax.xml.ws.Holder<QueryOptions> queryOptions,
@WebParam(partName = "LocaleOptions", mode =
WebParam.Mode.INOUT,
name = "LocaleOptions", targetNamespace =
"urn:partner.soap.sforce.com")
javax.xml.ws.Holder<LocaleOptions> localeOptions,
@WebParam(partName = "EmailHeader", mode =
WebParam.Mode.INOUT, name
= "EmailHeader", targetNamespace = "urn:partner.soap.sforce.com",
header =
true)
javax.xml.ws.Holder<EmailHeader> emailHeader,
@WebParam(partName = "UserTerritoryDeleteHeader", mode =
WebParam.Mode.INOUT, name = "UserTerritoryDeleteHeader",
targetNamespace =
"urn:partner.soap.sforce.com")
javax.xml.ws.Holder<UserTerritoryDeleteHeader>
userTerritoryDeleteHeader,
@WebParam(partName = "LoginScopeHeader", mode =
WebParam.Mode.INOUT,
name = "LoginScopeHeader", targetNamespace = "urn:partner.soap.sforce.com
")
javax.xml.ws.Holder<LoginScopeHeader> loginScopeHeader,
@WebParam(partName = "AssignmentRuleHeader", mode =
WebParam.Mode.INOUT, name = "AssignmentRuleHeader", targetNamespace
= "urn:
partner.soap.sforce.com", header = true)
javax.xml.ws.Holder<AssignmentRuleHeader> assignmentRuleHeader,
@WebParam(partName = "SessionHeader", mode =
WebParam.Mode.INOUT,
name = "SessionHeader", targetNamespace =
"urn:partner.soap.sforce.com",
header = true)
javax.xml.ws.Holder<SessionHeader> sessionHeader,
@WebParam(partName = "CallOptions", mode =
WebParam.Mode.INOUT, name
= "CallOptions", targetNamespace = "urn:partner.soap.sforce.com",
header =
true)
javax.xml.ws.Holder<CallOptions> callOptions
) throws UnexpectedErrorFault, InvalidIdFault, InvalidFieldFault,
InvalidSObjectFault;
The outbound message when calling this :
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<SessionHeader xmlns:ns3="urn:fault.partner.soap.sforce.com"
xmlns:ns2="urn:sobject.partner.soap.sforce.com"
xmlns="urn:partner.soap.sforce.com">
<sessionId>
460200D70000000IQeW!
AQ0AQG9d9iqlIIAaw_R3H15rJHfrf_GMj12ETIp8f
.BsCplX0KwaHrJLGoEFaAMeoy4y_PPppcX2uXItleMLbVJF24uof0MI
</sessionId>
</SessionHeader>
</soap:Header>
<soap:Body>
<create xmlns="urn:partner.soap.sforce.com"
xmlns:ns2="urn:sobject.partner.soap.sforce.com"
xmlns:ns3="urn:fault.partner.soap.sforce.com">
<sObjects>
<ns2:Id
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
"
xsi:nil="true" />
<ns2:type xmlns="urn:sobject.partner.soap.sforce.com">
Contact
</ns2:type>
<ns2:birthdate
xmlns="urn:sobject.partner.soap.sforce.com">
2008-05-142
</ns2:birthdate>
<ns2:firstName
xmlns="urn:sobject.partner.soap.sforce.com">
testConvert
</ns2:firstName>
<ns2:lastName
xmlns="urn:sobject.partner.soap.sforce.com">
testLastConvert
</ns2:lastName>
</sObjects>
</create>
</soap:Body>
</soap:Envelope>
The Salesforce.com server response :
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="urn:partner.soap.sforce.com">
<soapenv:Body>
<createResponse>
<result>
<id>0037000000YgDckAAF</id>
<success>true</success>
</result>
</createResponse>
</soapenv:Body>
</soapenv:Envelope>
=> no problem, my Contact is create in Salesforce.com
But an IndexOutOfBoundsException is thrown (same stack as in je jira
issue)
:
Interceptor has thrown exception, unwinding now
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.get(ArrayList.java:321)
at
org
.apache.cxf.message.MessageContentsList.get(MessageContentsList.java:
79)
at
org
.apache
.cxf
.jaxws
.interceptors
.HolderInInterceptor.handleMessage(HolderInInterceptor.java:64)
at
org
.apache
.cxf
.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
221)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:
429)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.handleResponse(HTTPConduit.java:1988)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.close(HTTPConduit.java:1824)
at
org
.apache
.cxf
.io
.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:
47)
at
org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:
159)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:
66)
at
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:583)
at
org.apache.cxf.interceptor.MessageSenderInterceptor
$
MessageSenderEndingInterceptor
.handleMessage(MessageSenderInterceptor.java:62)
at
org
.apache
.cxf
.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
221)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)
at
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:
178)
TYIA for your great work Daniel !
Gaël
2008/5/20, Daniel Kulp <[EMAIL PROTECTED]>:
This error is pretty different..... Does the message have headers
in it?
I THINK I may have this fixed now. I'm going to deploy a new
snapshot
tonight. If you could retry with that snapshot tomorrow morning,
that
would be great.
Dan
On May 18, 2008, at 1:51 PM, XeN0s wrote:
Hi,
I'm using cxf 2.1 and I have the same error although I consume my
webservice well (I receive I soap message from the server that
notify me
the
operation's success on the server side).
And the error I don't understand is :
18 mai 2008 19:49:45 org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
at
org
.apache
.cxf
.jaxws
.interceptors
.HolderInInterceptor.handleMessage(HolderInInterceptor.java:64)
at
org
.apache
.cxf
.phase
.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
at
org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:429)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.handleResponse(HTTPConduit.java:1988)
at
org.apache.cxf.transport.http.HTTPConduit
$WrappedOutputStream.close(HTTPConduit.java:1824)
at
org
.apache
.cxf
.io
.CacheAndWriteOutputStream
.postClose(CacheAndWriteOutputStream.java:47)
at
org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:
159)
at
org
.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:
583)
at
org.apache.cxf.interceptor.MessageSenderInterceptor
$
MessageSenderEndingInterceptor
.handleMessage(MessageSenderInterceptor.java:62)
at
org
.apache
.cxf
.phase
.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:
276)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:
222)
at
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:
177)
at $Proxy42.create(Unknown Source)
at com.avs.sforce.connection.SFClient.create(SFClient.java:
165)
at
com.avs.sforce.connection.SFClient$$FastClassByCGLIB$
$4e83e795.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at
org.springframework.aop.framework.Cglib2AopProxy
$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:694)
at
org
.springframework
.aop
.framework
.ReflectiveMethodInvocation
.proceed(ReflectiveMethodInvocation.java:149)
at
org
.springframework
.aop
.aspectj
.MethodInvocationProceedingJoinPoint
.proceed(MethodInvocationProceedingJoinPoint.java:77)
at
com.avs.sforce.connection.AspectRetry.retry(AspectRetry.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect
.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org
.springframework
.aop
.aspectj
.AbstractAspectJAdvice
.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:597)
at
org
.springframework
.aop
.aspectj
.AbstractAspectJAdvice
.invokeAdviceMethod(AbstractAspectJAdvice.java:583)
at
org
.springframework
.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:60)
at
org
.springframework
.aop
.framework
.ReflectiveMethodInvocation
.proceed(ReflectiveMethodInvocation.java:171)
at
org
.springframework
.aop
.interceptor
.ExposeInvocationInterceptor
.invoke(ExposeInvocationInterceptor.java:89)
at
org
.springframework
.aop
.framework
.ReflectiveMethodInvocation
.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.Cglib2AopProxy
$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:629)
at
com.avs.sforce.connection.SFClient$$EnhancerByCGLIB$
$d81710b6.create(<generated>)
at com.avs.test.TestConversion.main(TestConversion.java:32)
--
View this message in context:
http://www.nabble.com/Is-cxf-no-tcompatible-with-XML-beans-tp17271898p17305733.html
Sent from the cxf-user mailing list archive at Nabble.com.
---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog