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


Reply via email to