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.