Hi all,
I'm trying to implement a simple Action that has to access a datasource.
The datasource itself is okay (queries via SQL Transformer work) and I've
also successfully implemented a simple Action that doesn't use the database.
When trying to lookup org.apache.avalon.excalibur.datasource.DataSourceComponentSelector
via the ServiceManager I get a ClassCastException. I've copied over as much
code I could get from examples, but it looks like I'm still doing something wrong. I'll
post the relevant lines here:
public class AddUser extends AbstractAction implements Serviceable { private ServiceManager servicemanager = null; private String datasourcename = "Test-DB";
public Map act (Redirector redirector,
SourceResolver resolver,
Map objectModel,
String source,
Parameters params)
{
DataSourceComponent datasource = null;
ComponentSelector selector = null; try
{
String key = DataSourceComponent.ROLE+"Selector" ;
if (servicemanager.hasService(key))
getLogger().warn("Service present."); getLogger().warn("Getting Selector: '" + key + "'"); selector
= (ComponentSelector)(servicemanager.lookup
(DataSourceComponent.ROLE + "Selector"));...
The last line that assigns the ComponentSelector to selector fails with the
ClassCastExceoption. The ServiceManager is correctly initialized by the
service(ServiceManager) method (it gets called correctly) and the ServiceManager
returns a "true" value when calling
hasService(org.apache.avalon.excalibur.datasource.DataSourceComponentSel ector).
Although it's a bit longer I'll also attach the StackTrace here, maybe it helps.
java.lang.ClassCastException
at de.easyclin.cocoon.actions.AddUser.act(AddUser.java:53)
at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(Ac tTypeNode.java:159)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode. invokeNodes(AbstractParentProcessingNode.java:84)
at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.i nvoke(PreparableMatchNode.java:165)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode. invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(P ipelineNode.java:162)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode. invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke( PipelinesNode.java:136)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreePro cessor.java:371)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreePro cessor.java:312)
at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(Moun tNode.java:133)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode. invokeNodes(AbstractParentProcessingNode.java:84)
at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.i nvoke(PreparableMatchNode.java:165)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode. invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(P ipelineNode.java:162)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode. invokeNodes(AbstractParentProcessingNode.java:107)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke( PipelinesNode.java:136)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreePro cessor.java:371)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreePro cessor.java:312)
at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:356)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationH andler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1776)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationCon text.java:514)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1726)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:196 )
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:487)
Any help here would be greatly appreciated.
Thanks in advance, Christoph.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
