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]



Reply via email to