[jboss-user] [Remoting] - Invoking invocation handler located on JBoss AS
thejavafreak
do-not-reply at jboss.com
Thu Apr 17 05:16:00 EDT 2008
Dear all,
I have deployed an invocation handler and deployed it on JBoss AS 5.0.0Beta4 by inserting the configuration inside conf/jboss-service.xml as such:
| <mbean code="org.jboss.remoting.transport.Connector"
| name="jboss.remoting:service=IVRConnector,transport=Socket"
| display-name="Socket transport Connector">
|
| <!-- Can either just specify the InvokerLocator attribute and not the invoker element in the -->
| <!-- Configuration attribute, or do the full invoker configuration in the in invoker element -->
| <!-- of the Configuration attribute. -->
|
| <!-- Remember that if you do use more than one param on the uri, will have to include as a CDATA, -->
| <!-- otherwise, parser will complain. -->
| <attribute name="InvokerLocator"><![CDATA[socket://${jboss.bind.address}:6666/]]></attribute>
|
| <attribute name="Configuration">
| <config>
| <!-- Other than transport type and handler, none of these configurations are required (will just use defaults). -->
| <invoker transport="socket">
| <attribute name="dataType" isParam="true">invocation</attribute>
| <attribute name="marshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationMarshaller</attribute>
| <attribute name="unmarshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationUnMarshaller</attribute>
| <!-- The following are specific to socket invoker -->
| <attribute name="numAcceptThreads">1</attribute>
| <attribute name="maxPoolSize">303</attribute>
| <attribute name="clientMaxPoolSize" isParam="true">304</attribute>
| <attribute name="socketTimeout">60000</attribute>
| <!-- To set socketTimeout on client as well, add "isParam" -->
| <!--<attribute name="socketTimeout" isParam="true">60000</attribute>-->
| <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
| <attribute name="serverBindPort">6666</attribute>
| <attribute name="clientConnectAddress" isParam="true">${jboss.bind.address}</attribute>
| <attribute name="clientConnectPort" isParam="true">6666</attribute>
| <attribute name="enableTcpNoDelay" isParam="true">true</attribute>
| <attribute name="backlog">200</attribute>
| <!-- The following is for callback configuration and is independent of invoker type -->
| <attribute name="callbackMemCeiling">30</attribute>
| <!-- indicates callback store by fully qualified class name -->
| <attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute>
| <!-- indicates callback store by object name -->
| <!-- <attribute name="callbackStore">jboss.remoting:service=CallbackStore,type=Serializable</attribute> -->
| <!-- config params for callback store. if were declaring callback store via object name, -->
| <!-- could have specified these config params there. -->
| <!-- StoreFilePath indicates to which directory to write the callback objects. -->
| <!-- The default value is the property value of 'jboss.server.data.dir' and if this is not set, -->
| <!-- then will be 'data'. Will then append 'remoting' and the callback client's session id. -->
| <!-- An example would be 'data\remoting\5c4o05l-9jijyx-e5b6xyph-1-e5b6xyph-2'. -->
| <attribute name="StoreFilePath">callback</attribute>
| <!-- StoreFileSuffix indicates the file suffix to use for the callback objects written to disk. -->
| <!-- The default value is ser. -->
| <attribute name="StoreFileSuffix">cst</attribute>
| <!-- Sets the callback error handler to use when determining how to manage failed push callbacks -->
| <!-- When not specified, the default is org.jboss.remoting.callback.DefaultCallbackErrorHandler -->
| <!-- <attribute name="callbackErrorHandler">org.jboss.remoting.callback.DefaultCallbackErrorHandler</attribute> -->
| </invoker>
| <!-- At least one handler is required by the connector. If have more than one, must declare -->
| <!-- different subsystem values. Otherwise, all invocations will be routed to the only one -->
| <!-- that is declared. -->
| <handlers>
| <!-- specify handler by fully qualified classname -->
| <handler subsystem="ivr">com.taxandtech.lab.remoting.SimpleInvocationHandler</handler>
| <!-- can also specify handler by object name -->
| <!-- <handler subsystem="mock">test:type=handler</handler> -->
| </handlers>
| </config>
| </attribute>
| <depends>jboss.remoting:service=NetworkRegistry</depends>
| </mbean>
|
But when I access it from client I get this stacktrace error:
| org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem establishing socket connection for InvokerLocator [socket://127.0.0.1:6666/]
| at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:530)
| at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
| at org.jboss.remoting.Client.invoke(Client.java:1550)
| at org.jboss.remoting.Client.invoke(Client.java:530)
| at org.jboss.remoting.Client.invoke(Client.java:518)
| at com.taxandtech.lab.remoting.SimpleClient.makeInvocation(SimpleClient.java:26)
| at com.taxandtech.lab.remoting.SimpleClient.main(SimpleClient.java:47)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
| Caused by: java.net.SocketException: Software caused connection abort: connect
| at java.net.PlainSocketImpl.socketConnect(Native Method)
| at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
| at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
| at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
| at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
| at java.net.Socket.connect(Socket.java:519)
| at org.jboss.remoting.transport.socket.SocketClientInvoker.createSocket(SocketClientInvoker.java:187)
| at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.getConnection(MicroSocketClientInvoker.java:801)
| at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:526)
| ... 11 more
|
It said that it can not connect to the server, but I can see the MBean from the JMX Console. Why could this occur? On the other hand if I call the jboss.remoting:service=Connector, it will succeed and does not produce the same stacktrace. Could anyone guide me on this? I would really like to use the jboss-remoting on JBoss AS.
Thank you in advance
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144770#4144770
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144770
More information about the jboss-user
mailing list