JCA resource adapter configuration error for Jboss eap 6.0
sanjmand Apr 16, 2014 8:20 AMHi All,
I am trying to migrate the JCA resource adapter code developed for jboss as 4.0 to Jboss eap 6.0.1 , but i am getting following error in the jboss eap 6.0 console when i deployed the code after made some changes.
15:52:47,726 WARNING [com.tiscon.bpm.clusterbridge.BPMClusterBridgeBean] (Thread-171) Error while loadWorkItems for FC-SYSTEM-IPP: com.tiscon.bpm.connector.BPMException: com.tiscon.bpm.connector.staffware.ConnectionFactory cannot be cast to com.tiscon.bpm.connector.BPMConnectionFactory
at com.tiscon.bpm.connector.BPMConnectionFacadeBean.loadWorkItems(BPMConnectionFacadeBean.java:237)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_45]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_45]
at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) [jboss-as-ee-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:209) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.as.ejb3.tx.CMTTxInterceptor.notSupported(CMTTxInterceptor.java:272) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:186) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:79) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:42) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories$1.processInvocation(EjbExceptionTransformingInterceptorFactories.java:65) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final-redhat-2.jar:1.1.1.Final-redhat-2]
at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:221) [jboss-as-ejb3-7.1.3.Final-redhat-4.jar:7.1.3.Final-redhat-4]
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:42) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:125) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104) [jboss-ejb-client-1.0.11.Final-redhat-1.jar:1.0.11.Final-redhat-1]
at com.sun.proxy.$Proxy48.loadWorkItems(Unknown Source)
####################################3
The ironjacamar.xml file is:
<?xml version="1.0" encoding="UTF-8"?>
<ironjacamar>
<connection-definitions>
<connection-definition class-name="com.tiscon.bpm.connector.staffware.ManagedConnectionFactoryImpl" jndi-name="java:/fec/StaffwareProcessSuite">
<pool>
<min-pool-size>0</min-pool-size>
<max-pool-size>10</max-pool-size>
</pool>
</connection-definition>
</connection-definitions>
</ironjacamar>
###################
The ra.xml file is:
<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd" version="1.5">
<description>Staffware Process Suite ResourceAdapter</description>
<display-name>Staffware Process Suite ResourceAdapter</display-name>
<vendor-name>tiscon</vendor-name>
<eis-type>JDBC 2 XA drivers</eis-type>
<resourceadapter-version>1.0</resourceadapter-version>
<resourceadapter>
<outbound-resourceadapter>
<connection-definition>
<managedconnectionfactory-class>com.tiscon.bpm.connector.staffware.ManagedConnectionFactoryImpl</managedconnectionfactory-class>
<config-property>
<config-property-name>AdminQueueJNDIName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>java:/queue/SurveyorAdminQueue</config-property-value>
</config-property>
<config-property>
<config-property-name>UserName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>fclaim</config-property-value>
</config-property>
<config-property>
<config-property-name>Password</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>fclaimpwd</config-property-value>
</config-property>
<config-property>
<config-property-name>WatcherRefreshDelay</config-property-name>
<config-property-type>java.lang.Long</config-property-type>
<config-property-value>10000</config-property-value>
</config-property>
<config-property>
<config-property-name>StaffwareNodeName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>staff_isoit922</config-property-value>
</config-property>
<config-property>
<config-property-name>StaffwareServerName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>server.houston.com</config-property-value>
<!-- <config-property-value>abc.com</config-property-value> -->
</config-property>
<config-property>
<config-property-name>StaffwareServerIpAddress</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>34.34.54.74</config-property-value>
</config-property>
<config-property>
<config-property-name>StaffwareServerTcpPort</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>1502</config-property-value>
</config-property>
<connectionfactory-interface>com.tiscon.bpm.connector.BPMConnectionFactory</connectionfactory-interface>
<connectionfactory-impl-class>com.tiscon.bpm.connector.staffware.ConnectionFactory</connectionfactory-impl-class>
<connection-interface>com.tiscon.bpm.connector.BPMConnection</connection-interface>
<connection-impl-class>com.tiscon.bpm.connector.staffware.Connection</connection-impl-class>
</connection-definition>
<transaction-support>NoTransaction</transaction-support>
<!--
<authentication-mechanism>
<authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
<credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
</authentication-mechanism>
-->
<reauthentication-support>false</reauthentication-support>
</outbound-resourceadapter>
</resourceadapter>
</connector>
########################
My BPMConnectionFactory interface is:
public interface BPMConnectionFactory {
public BPMConnection getConnection() throws ResourceException;
public BPMConnection getConnection(String user, String passwd) throws ResourceException;
public BPMConnection getWatcherConnection(String worklistName) throws ResourceException;
public void startWatcher(String worklistName, String jmsQueueJNDIName, long msDelay, Long watcherRefreshDelay )
throws ResourceException, BPMConnectorException;
public void startWatcher(String user, String passwd, String worklistName, String jmsQueueJNDIName, long msDelay, Long watcherRefreshDelay )
throws ResourceException, BPMConnectorException;
public void stopWatcher( String worklistName ) throws ResourceException, BPMConnectorException;
public void restartWatcher( String worklistName, long msDelay, Long watcherRefreshDelay )throws ResourceException, BPMConnectorException;
public BPMWatcherInfoData[] retrieveWatcherStatus()throws BPMConnectorException;
}
########################
My Connection class is::
package com.tiscon.bpm.connector.staffware;
public class Connection implements Serializable, BPMConnection {
public Connection(ManagedConnectionImpl managedConnection) {
setManagedConnection(managedConnection);
}
public void close() {
logger.entering ("Connection", "close", this);
if( getManagedConnection() != null ) {
getManagedConnection().closeConnection( this );
}
}
public void startProcess(String groupName, String processName, Map writeValues)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public String[] getActivityAndWorklistForTopic(String topic) throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public void sendToNextActivity(String topic, String activityName, String worklistId, Map writeValues)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public void sendToNextActivity(BPMWorkItem workItem, Map writeValues)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public BPMWorkItemDetail[] loadWorkItemDetails (String workListName)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
private WorkList getMappedWorkList( String workListName ) {
return workListManager.getWorkList( new BPMMappingValue(workListName).getMappedValue(), this );
}
public BPMWorkItem[] loadWorkItems (String workListName)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public String[] loadWorkItemsIds (String workListName)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public String[] loadWorkItemsTopics (String workListName)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public BPMWorkItem loadWorkItem(String workItemId)
throws ResourceException, BPMConnectorException, BPMWorkItemNotFoundException, BPMException {
// implementation
}
public BPMWorkItem loadWorkItem (String topic, String activityName, String worklist)
throws ResourceException, BPMConnectorException, BPMWorkItemNotFoundException, BPMException {
// implementation
}
public void deleteWorkItem(BPMWorkItem workItem)
throws ResourceException, BPMConnectorException, BPMException {
// implementation
}
public void sendToNextActivities(BPMWorkItem[] detailSources, Map[] writeValues) throws ResourceException, BPMConnectorException, BPMMassOperationException {
// implementation
}
public void deleteWorkItems(BPMWorkItem[] workItems) throws ResourceException, BPMException, BPMMassOperationException {
// implementation
}
private void convertToUnmappedWorkItem(BPMWorkItem[] workItems) {
// implementation
}
private void convertToUnmappedWorkItemDetails(BPMWorkItemDetail[] workItemDetails) {
// implementation
}
private void logDetails(BPMWorkItemDetail bpmWorkItemDetail, String prefix) {
// implementation
}
private void logDetails(BPMWorkItem bpmWorkItem, String prefix) {
// implementation
}
private void convertToMappedWorkItems (BPMWorkItem[] workItems) {
// implementation
}
private void convertToMappedWorkItemDetails(BPMWorkItemDetail[] workItemDetails) {
// implementation
}
public ManagedConnectionImpl getManagedConnection() {
// implementation
}
public void setManagedConnection(ManagedConnectionImpl pooledManagedConnection) {
// implementation
}
public WorkListManager getWorkListManager() {
// implementation
}
void setWorkListManager( WorkListManager workListManager ) {
// implementation
}
private ManagedConnectionImpl managedConnection;
private WorkListManager workListManager;
private static Logger logger = Logger.getLogger( Connection.class.getName() );
}
###########
The ejb-jar.xml entry is:
<session >
<description><![CDATA[]]></description>
<ejb-name>BPMConnectionFacade</ejb-name>
<home>com.tiscon.bpm.connector.BPMConnectionFacadeHome</home>
<remote>com.tiscon.bpm.connector.BPMConnectionFacade</remote>
<ejb-class>com.tiscon.bpm.connector.BPMConnectionFacadeBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<resource-ref >
<res-ref-name>java:/fec/StaffwareProcessSuite</res-ref-name>
<res-type>com.tiscon.bpm.connector.BPMConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</session>
#########
The lookup code in the BPMConnectionFacadeBean.java class is:
private BPMConnectionFactory connectionFactory;
Context context = new InitialContext();
connectionFactory = (BPMConnectionFactory) context.lookup("java:/fec/StaffwareProcessSuite");
Can anybody suggest why am i getting this error?
Regards
Sanjeev Kumar