Hi Sandeep,
comment inline
sandeep reddy wrote:
Freeeman,
Thanks for your support and fast response.After adding that
property to xbean.xml file of CXF-SE
as <cxfse:endpoint useJBIWrapper="false">. While loading my component it is
saying that
no property found "useJBIWrapper" .
I am using servicemix 3.2.1 snapshot.I don't know whether this feature is
available to this version or not.
this property is added after smx 3.2.1 release, so you need use smx
3.2.2 snapshot
And also some another posts i have seen that which actually replying that
having flow like:
HTTP SU --> CXF-SE ( is not possible as for now)? what's the solution for
this?
It's possibe for now, besides add useJBIWrapper="false" for cxf se, you
can also use new http endpoint configuration, which support jbi
wrapper, something like
<http:soap-consumer useJbiWrapper="true" ...
<loc-token/>
<loc-message>org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'org.apache.servicemix.cxfse.CxfSeEndpoint' defined
in file
[/home/sreddy/software/apache-servicemix-3.2.1/data/smx/service-assemblies/sa/version_4/sus/servicemix-cxf-se/cxf-se-su/xbean.xml]:
Initialization of bean failed; nested exception is
org.springframework.beans.InvalidPropertyException: Invalid property
'useJBIWrapper' of bean class [org.apache.servicemix.cxfse.CxfSeEndpoint]:
No property 'useJBIWrapper' found</loc-message>
<stack-trace><![CDATA[org.apache.xbean.kernel.ServiceRegistrationException:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.apache.servicemix.cxfse.CxfSeEndpoint' defined in file
[/home/sreddy/software/apache-servicemix-3.2.1/data/smx/service-assemblies/sa/version_4/sus/servicemix-cxf-se/cxf-se-su/xbean.xml]:
Initialization of bean failed; nested exception is
org.springframework.beans.InvalidPropertyException: Invalid property
'useJBIWrapper' of bean class [org.apache.servicemix.cxfse.CxfSeEndpoint]:
No property 'useJBIWrapper' found
at
org.apache.xbean.kernel.standard.ServiceManagerRegistry.registerService(ServiceManagerRegistry.java:424)
at
org.apache.xbean.kernel.standard.StandardKernel.registerService(StandardKernel.java:220)
at
org.apache.xbean.server.spring.loader.SpringLoader.load(SpringLoader.java:152)
at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:83)
at
org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:350)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:647)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:60)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:611)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Freeman Fang wrote:
Hi Sandeep,
According to your http endpoint configuration, your http endpoint are
using soap message, but by default the cxf se endpoint will use jbi
wrapper message, this mismatch cause the problem.
You need add useJBIWrapper="false" for your cxf se endpoint xbean.xml to
address it.
Regards
Freeman
sandeep reddy wrote:
Hi Freeman,
Actually i solved that endpoint problem.What's happening in the sense
after loading my component
into servicemix i have verified logs of my compoent hence it is looking
for
(PersonServiceService):
DEBUG - CxfSeComponent - Querying service description for
ServiceEndpoint[service={http://servicemix.in2m.com/samples/pojo}PersonServiceService,endpoint=PersonServicePort]
DEBUG - CxfSeComponent - No description found for
{http://servicemix.in2m.com/samples/pojo}PersonServiceService:PersonServicePort
DEBUG - WSDL1Processor - Endpoint
ServiceEndpoint[service={http://servicemix.in2m.com/samples/pojo}PersonServiceService,endpoint=PersonServicePort]
has no service description
DEBUG - CxfSeComponent - Querying service description for
ServiceEndpoint[service={http://servicemix.in2m.com/samples/pojo}PersonServiceService,endpoint=PersonServicePort]
DEBUG - CxfSeComponent - No description found for
{http://servicemix.in2m.com/samples/pojo}PersonServiceService:PersonServicePort
DEBUG - WSDL2Processor - Endpoint
ServiceEndpoint[service={http://servicemix.in2m.com/samples/pojo}PersonServiceService,endpoint=PersonServicePort]
has no service description
And my HTTP SU xbean.xml file. service is pointing to --->
targetService="person:PersonService"
So i changed it into targetService="person:PersonServiceService"
Now, Actually i can send message to HTTP SU, but after processing HTTP SU
and reaching to CXF-SE
component its failing to get response back. (i am posting some of the
logs)
DEBUG - HttpComponent - Created correlation id:
ID:192.168.2.53-11a050cf2a8-4:0
DEBUG - DeliveryChannelImpl - Send
ID:192.168.2.53-11a050cf2a8-4:0 in DeliveryChannel{servicemix-http}
DEBUG - SedaFlow - Called Flow send
DEBUG - ConsumerProcessor - Suspending continuation for
exchange: ID:192.168.2.53-11a050cf2a8-4:0
DEBUG - SedaQueue -
[EMAIL PROTECTED] dequeued
exchange: InOut[
id: ID:192.168.2.53-11a050cf2a8-4:0
status: Active
role: provider
service: {http://servicemix.in2m.com/samples/pojo}PersonServiceService
endpoint: PersonServicePort
operation: {http://servicemix.in2m.com/samples/pojo/types}GetPerson
in: <?xml version="1.0" encoding="UTF-8"?><tns:GetPerson
xmlns:tns="http://servicemix.in2m.com/samples/pojo/types"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<tns:personId>world</tns:personId>
</tns:GetPerson>
]
DEBUG - CxfSeComponent - Received exchange: status:
Active,
role: provider
DEBUG - CxfSeComponent - Retrieved correlation id:
ID:192.168.2.53-11a050cf2a8-4:0
DEBUG - DefaultListableBeanFactory - Returning cached instance of
singleton bean 'org.apache.cxf.transport.jbi.JBITransportFactory'
ERROR - CxfSeComponent - Error processing exchange InOut[
id: ID:192.168.2.53-11a050cf2a8-4:0
status: Active
role: provider
service: {http://servicemix.in2m.com/samples/pojo}PersonServiceService
endpoint: PersonServicePort
operation: {http://servicemix.in2m.com/samples/pojo/types}GetPerson
in: <?xml version="1.0" encoding="UTF-8"?><tns:GetPerson
xmlns:tns="http://servicemix.in2m.com/samples/pojo/types"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<tns:personId>world</tns:personId>
</tns:GetPerson>
]
java.lang.NullPointerException
at
org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:180)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
And this is my CXF - SE xbean.xml file :
-----------------------------------
<cxfse:endpoint>
<cxfse:pojo>
<bean class="com.in2m.servicemix.samples.pojo.PersonService" />
</cxfse:pojo>
</cxfse:endpoint>
And i am having pojo structure as:
@WebService(name = "PersonService", targetNamespace =
"http://servicemix.in2m.com/samples/pojo")
public class PersonService implements Person {
public GetPersonResponse getPerson(GetPerson payload) {
// I am having my response back here
}
What could be the problem, any help ???????
---------------
Sandeep.
Freeman Fang wrote:
Hi Sandeep,
What's the xbean.xml for your cxf se looks like?
Freeman
sandeep reddy wrote:
Hi All,
I am trying out servicemix concept for POJO example using CXF -
SE.
The flow and i am trying out is :
Client --> HTTP SU (SOAP request) ----> CXF - SE ---> Client.
And here everything ( compiling, deployment) is fine. After that
when
ever i hit HTTP SU using a
client.html which sends a soap request.
The Error i am getting is:
DEBUG - HttpComponent - Created correlation id:
ID:192.168.2.53-11a01d1f1ec-4:0
DEBUG - DeliveryChannelImpl - Send
ID:192.168.2.53-11a01d1f1ec-4:0 in DeliveryChannel{servicemix-http}
WARN - DefaultBroker - ServiceName
({http://servicemix.in2m.com/samples/pojo}PersonService) specified for
routing, but can't find it registered
WARN - DefaultBroker - ServiceName
({http://servicemix.in2m.com/samples/pojo}PersonService) specified for
routing, but can't find it registered
DEBUG - DeliveryChannelImpl - Exception processing:
ID:192.168.2.53-11a01d1f1ec-4:0 in DeliveryChannel{servicemix-http}
Here are my files:
http xbean.xml file:
-----------------------------
<http:endpoint service="person:PersonService"
endpoint="soap"
role="consumer"
targetService="person:PersonService"
locationURI="http://localhost:8192/PersonService/"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
soap="true" />
Any my client.html file is:
-----------------------------------------
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://servicemix.in2m.com/samples/pojo/types">
<env:Body>
<tns:GetPerson>
<tns:personId>world</tns:personId>
</tns:GetPerson>
</env:Body>
</env:Envelope>
And every thing is fine at CXF - SE side.
1) So, what's going wrong here.
2) Interesting point the same example i tried out using JSR181
and
its
working.
Please help me i stuck with this problem.
-----------------------------
Sandeep.