I am now able to deploy my service on jsr181.
When I try to invoke it, I get an xfire exception : Not enough message
parts were received for the operation.
I have checked out xfire project in my eclipse to use it in ebug mode
and I have found the cause of the problem :
The exception is thrown there :
List parts = inMsg.getMessageParts();
if (params.size() < parts.size()) { throw...
params.size = 0
parts.size = 1 which is correct (nut something strange, the doc I send
is : <invokeFault xmlns="urn:invokeUtil:bpel:bsoap">test6</invokeFault>
which is correct as jsr181 operation is called invokeFault but when I
browse the only entry in parts variable I can read that the part is
called input...)
What I understand in the code is that parts represents the expected
parts based on the operation analyse and params variable represents the
actually received inMessage body.
In fact params = (List) context.getInMessage().getBody();
When I browse context.exchange.inMessage, the body is null but I found
the message in xmlStreamReader.mCurrNode...
So I gave you what happens but all this is a bit confused for me...
Have you got an idea ?
For information, the message exchange in the bus sent to jsr181 is :
DEBUG - DeliveryChannelImpl - Accepting
ID:frec445363-37628-1157724227071-6:7 in DeliveryChannel{servicemix-jsr181}
DEBUG - DeliveryChannelImpl - Accepted: InOut[
id: ID:frec445363-37628-1157724227071-6:7
status: Active
role: provider
interface: {urn:invokeUtil:bpel:bsoap}invokeUtilPT
service: {urn:invokeUtil:bpel:bsoap}InvokeUtilServiceBP
endpoint: invokeUtilPort
operation: {urn:invokeUtil:bpel:bsoap}invokeFault
in: <?xml version="1.0" encoding="UTF-8"?><invokeFault
xmlns="urn:invokeUtil:bpel:bsoap">test6</invokeFault>
]
Thanks for your help
Regards
Charles
Charles Souillard wrote:
Hi Bernard,
It doesn't work for me...
Is it possible for you to send me you SA and the java classes of your
service please ?
If the mailling list refuses it you can send it directly to me.
With that I will be able to compare your SA to mine and make the
needed modifications
Thanks for your help on that topic.
I was loosing courage as this compojent is described as a very easy
one to use...
Charles
Bernard LUPIN wrote:
I have the same problem if I put a jar in the
<classpath> tag of the jsr181 xbean.xml.
But everything works well if I don't pack my classes
in a jar (so I put them in the root of the SU's zip)
and change the xbean tag to <classpath>.</classpath>.
I don't know why this makes a difference.
Bernard
-----Message d'origine-----
De : Charles Souillard
[mailto:[EMAIL PROTECTED]
Envoyé : vendredi 8 septembre 2006 09:21
À : [email protected]
Objet : sm-jsr181
Hi all,
I am trying to use sm-jsr181 component as I want to
activate a service on the bus as a pojo.
What I want to do is to expose only one operation
which performs a throw...
public String invokeFault(String input) throws
bsoap.bpel.InvokeUtil.MyFaultMessage {
throw new
bsoap.bpel.InvokeUtil.MyFaultMessage("my Fault");
}
As I have not been able to do that I have decided to
start with an easyer method :
package bsoap.bpel.invokeUtil;
public class InvokeUtilImpl {
public InvokeUtilImpl() {}
public String invokeFault(String input) {
return "in invokeFault operation";
}
}
I have made a jar containig the compiled class of
the one above and I have put it on the su.
My su also contains the .class and the .java file.
In addition a wsdl file describing the service is in
the su and the xbean.xml looks like :
<beans
xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0"
xmlns:tns="urn:invokeUtil:bpel:bsoap">
<jsr181:endpoint
service="tns:InvokeUtilServiceBP"
pojoClass="bsoap.bpel.invokeUtil.InvokeUtilImpl"
endpoint="invokeUtilPort"
annotations="none"/>
<classpath>
<location>invokeUtil.jar</location>
</classpath>
</beans>
When I deploy the sa into SM, I get the following
exception :
<component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message">
<component-name>servicemix-jsr181</component-name>
<component-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-msg>
<msg-loc-info> <loc-token/> <loc-message>Could not
register endpoint</loc-message> </msg-loc-info>
</task-status-msg>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token/>
<loc-message>bsoap.bpel.invokeUtil.InvokeUtilImpl in
classloader
bsoap.bpel.invokeUtil.InvokeUtilImpl</loc-message>
<stack-trace><![CDATA[java.lang.ClassNotFoundException:
bsoap.bpel.invokeUtil.InvokeUtilImpl in classloader
bsoap.bpel.invokeUtil.InvokeUtilImpl
at
org.apache.xbean.server.classloader.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:206)
at
java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at
org.apache.servicemix.jsr181.Jsr181Endpoint.registerService(Jsr181Endpoint.java:176)
at
org.apache.servicemix.jsr181.Jsr181XBeanDeployer.validate(Jsr181XBeanDeployer.java:42)
at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:101)
at
org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:87)
at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:68)
at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:527)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:295)
at
org.apache.servicemix.jbi.framework.AutoDeploymentService$2.run(AutoDeploymentService.java:592)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)
]]></stack-trace>
</msg-loc-info>
</exception-info>
</task-result-details>
</component-task-result-details>
</component-task-result>
Can you tell me what I am doing wrong ?
Thanks a lot
Regards
Charles
___________________________________________________________________________
Découvrez un nouveau moyen de poser toutes vos questions quelque soit
le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances,
vos opinions et vos expériences. http://fr.answers.yahoo.com