[JBoss JIRA] Created: (JBAS-3703) Update JRMPInvoker to not cast exported object to RemoteStub
by Scott M Stark (JIRA)
Update JRMPInvoker to not cast exported object to RemoteStub
------------------------------------------------------------
Key: JBAS-3703
URL: http://jira.jboss.com/jira/browse/JBAS-3703
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Remoting
Affects Versions: JBossAS-4.0.4.GA, JBossAS-4.0.3 SP1
Reporter: Scott M Stark
Assigned To: Tom Elrod
Fix For: JBossAS-4.0.6.CR1
If one runs with the jdk5 java.rmi.server.ignoreStubClasses dynamic stub override to force the server to generate stubs for exported objects, the JRMPInvoker fails to start with the following exception:
[starksm@succubus bin]$ run.sh -D-Djava.rmi.server.ignoreStubClasses=true
=========================================================================
...
11:55:52,477 WARN [ServiceController] Problem starting service jboss:service=invoker,type=jrmp
java.lang.ClassCastException: $Proxy13
at org.jboss.invocation.jrmp.server.JRMPInvoker.exportCI(JRMPInvoker.java:437)
at org.jboss.invocation.jrmp.server.JRMPInvoker.startService(JRMPInvoker.java:359)
at org.jboss.invocation.jrmp.server.JRMPInvoker$1.startService(JRMPInvoker.java:136)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
The reason is that the code creating the remote object is explictly casting the export result to a RemoteStub:
protected void exportCI() throws Exception
{
this.invokerStub = (RemoteStub) UnicastRemoteObject.exportObject
(this, rmiPort, clientSocketFactory, serverSocketFactory);
}
even though the public contract for this stub only requires a Serializable instance. The type of the invokerStub should just be relaxed to Serializable.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 11 months
[JBoss JIRA] Created: (JBAS-3630) JMSTransportSupport is not portable across different JMS providers.
by Darran Lofthouse (JIRA)
JMSTransportSupport is not portable across different JMS providers.
-------------------------------------------------------------------
Key: JBAS-3630
URL: http://jira.jboss.com/jira/browse/JBAS-3630
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Web Services
Affects Versions: JBossAS-4.0.4.GA
Reporter: Darran Lofthouse
Assigned To: Thomas Diesler
Fix For: JBossAS-4.0.6.CR1
JMSTransportSupport is not portable across different JMS providers, the queue name is retrieved using the following code: -
String fromName = null;
Destination destination = message.getJMSDestination();
if (destination instanceof Queue)
fromName = "queue/" + ((Queue)destination).getQueueName();
if (destination instanceof Topic)
fromName = "topic/" + ((Topic)destination).getTopicName();
For JBossMQ this is fine and it results in a name that matches the JNDI name of the queue, for WebSphereMQ this returns the name of the queue as configured on WebSphere not the JNDI name the queue is bound to in JBoss.
The Javadoc for Queue describes the getQueueName as not being suitable for portable clients: -
http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Queue.html
A more portable solution could be to lookup a variable in the ENC that contains the name of the web service, this could either be provided by the user deploying the MDB or the web service deployer could bind a value to the ENC of the message driven bean as the web service is deployed.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years