Barath,

For more information about the xbean.xml files an how to use them, you might want to check out this tutorial http://servicemix.apache.org/2-beginner-using-maven-to-develop-jbi-applications.html

Before answering your current question... if you are trying to handle an HTTP request in java code, you probably shouldn't be building your own service engine (cfr. http://servicemix.apache.org/should-i-create-my-own-jbi-components.html).

You can more easily achieve this goal if you use a servicemix-bean (cfr. http://servicemix.apache.org/servicemix-bean.html) SU to build/deploy a Java class that can handle the incoming message exchange by storing its properties to the database and returns a response XML document afterwards. I would really recommend you to use this approach instead of building a SE.

If you really do want to continue building the SE:
- Did you install the shop-se SE to the JBI container?
- What does the xbean.xml for your shop-se-su look like?


Gert



Barath wrote:
Hi,
I tried to do the following,
  * using servicemix-http component, get request from user and pass it to a
service engine.
  * in SE, retrive parameter(going to store it in the DB).

I proceeded till,
1 . Created a SU (http-su) for servicemix-http component. Its xbean.xml <beans xmlns:http="http://servicemix.apache.org/http/1.0";
       xmlns:shop="http://servicemix.apache.org/samples/shop";>
        <http:endpoint service="shop:shopservice"
endpoint="endpoint" role="consumer" locationURI="http://0.0.0.0:8192/shopservice/";
                  />
</beans>
        and jbi.xml is

        <?xml version="1.0" encoding="UTF-8"?>
                <jbi xmlns="http://java.sun.com/xml/ns/jbi"; version="1.0">
                <services binding-component="false"
xmlns:shop="http://servicemix.apache.org/samples/shop";>
                 <consumes service-name="shop:shopservice" 
endpoint-name="endpoint"/>
                </services>
                </jbi>
2 . Created a SE (shop-se) using maven SE architype.(it ve only three java
files)
3 . Created a SU (shop-se-su). I included <configuration> <generateJbiDescriptor>false</generateJbiDescriptor> </configuration> in pom.xml.
        so after giving mvn install i copied jbi.xml into jar and zip file.
        that jbi.xml file contain,

        <?xml version="1.0" encoding="UTF-8"?>
          <jbi xmlns="http://java.sun.com/xml/ns/jbi"; version="1.0">
                 <services binding-component="false"
xmlns:shop="http://servicemix.apache.org/samples/shop";>
                      <consumer service-name="shop:shopservice"
endpoint-name="endpoint"/>
                  </services>
          </jbi>


When i deploy by giving mvn jbi:projectDeploy i am getting the follwing
error,


INFO  - DeploymentService              - UnDeployed ServiceUnit shop-su from
Com
ponent: servicemix-http
ERROR - AutoDeploymentService          - Failed to update Service Assembly:
shop
-sa
java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?>
<jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message";
version="1.0
">
<jbi-task-result>
<frmwk-task-result>
<frmwk-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
</task-result-details>
</frmwk-task-result-details>
</frmwk-task-result>
<component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message";
        <component-name>servicemix-http</component-name>
        <component-task-result-details>
                <task-result-details>
                        <task-id>deploy</task-id>
                        <task-result>SUCCESS</task-result>
                </task-result-details>
        </component-task-result-details>
</component-task-result>
<component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message";
        <component-name>shop-se</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>Unable to find suitable deployer for Service Unit
'shop-se-su'</loc
-message>
</msg-loc-info>
</task-status-msg>
                </task-result-details>
        </component-task-result-details>
</component-task-result>
</jbi-task-result>
</jbi-task>

        at
org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
entSupport.java:121)
        at
org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
entSupport.java:107)
        at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAs
sembly(DeploymentService.java:563)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchi
ve(AutoDeploymentService.java:335)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExter
nalArchive(AutoDeploymentService.java:201)
        at
org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchiv
e(JBIContainer.java:473)
        at
org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchiv
e(JBIContainer.java:483)
        at
org.apache.servicemix.jbi.framework.AdminCommandsService.deployServic
eAssembly(AdminCommandsService.java:229)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.jav
a:216)
        at
org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseSta
ndardMBean.java:318)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultM
BeanServerInterceptor.java:836)
        at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761
)
        at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnecti
onImpl.java:1426)
        at
javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectio
nImpl.java:72)
        at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run
(RMIConnectionImpl.java:1264)
        at java.security.AccessController.doPrivileged(Native Method)
        at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(R
MIConnectionImpl.java:1366)
        at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImp
l.java:788)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
        at sun.rmi.transport.Transport$1.run(Transport.java:159)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
        at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:5
35)
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor
t.java:790)
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:649)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:885)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:907)
        at java.lang.Thread.run(Thread.java:619)



Does jbi.xml servicename and endpoint should match with any java file name
or method ?
I am not clear about xbean and jbi files..

Barath.

Reply via email to