What is your job really do ?
I’ve hacked WmJDBCAdapter for getting Connection object.
It worked by Adapter Service creation that return specific Connection.
Code snippet
- Write FetchConnection class.
package com.wm.adapter.wmjdbc.services;
import java.sql.Connection;
import java.util.Locale;
import javax.resource.ResourceException;
import com.wm.adapter.wmjdbc.connection.ConnectionInfo;
import com.wm.adapter.wmjdbc.connection.JDBCConnection;
import com.wm.adk.cci.interaction.WmAdapterService;
import com.wm.adk.cci.record.WmRecord;
import com.wm.adk.cci.record.WmRecordFactory;
import com.wm.adk.connection.WmManagedConnection;
import com.wm.adk.error.AdapterException;
import com.wm.adk.metadata.WmTemplateDescriptor;
/**
* @author Kyun Sang Song
*
* Created on 2004. 5. 19.
*
*/
public class FetchConnection extends WmAdapterService {
public FetchConnection() {
super();
}
public WmRecord execute(WmManagedConnection conn, WmRecord arg1)
throws ResourceException {
WmRecord out = WmRecordFactory.getFactory().createWmRecord("Output");
ConnectionInfo cInfo = ((JDBCConnection) conn).getConnectionInfo();
Connection dbCon = cInfo.getConnection();
out.put(_connectionName, dbCon);
return out;
}
public void fillWmTemplateDescriptor(WmTemplateDescriptor d, Locale l)
throws AdapterException {
d.createGroup("FetchConnection", new String[] {"connectionName"} );
d.setRequired("connectionName");
d.setResourceDomain("connectionName", "outputFieldNames",
new String[0]);
}
private String _connectionName = "dbConnection";
public String getConnectionName() {
return _connectionName;
}
public void setConnectionName(String connectionName) {
_connectionName = connectionName;
}
}
- add line to JDBCConnectionFactory class
public void fillResourceAdapterMetadataInfo(ResourceAdapterMetadataInfo info,
Locale locale)
throws AdapterException
{
...
info.addServiceTemplate((com.wm.adapter.wmjdbc.services.FetchConnection.class).getName());
}
#webMethods-General#webMethods#Integration-Server-and-ESB