Hi, i am using the XFireServlet because i need to pass parameters to
my Implementation class of the WebService:

public void init() throws ServletException
        {
                super.init();
                try
                {
                        ObjectServiceFactory factory = new
ObjectServiceFactory(getXFire().getTransportManager(), null);
                        //we don't want to expose compareTo
                        factory.addIgnoredMethods("java.lang.Comparable");
                        
                        String wsdlLocation = "file:///D:my.wsdl";
                        
                        URL wsdlURL = new URL(wsdlLocation);

                        HashMap props = new HashMap();
                        props.put(ObjectServiceFactory.PORT_TYPE, new
QName("http://www.securit.be/webservice";, "WebServiceSEI"));
                        
                        //create all the elements neccesary to create the 
service:
                        Class clazz = WebServiceSEI.class;
                        QName serviceName = new 
QName("http://www.securit.be/webservice";,
"WebService");
                        
                        Service service = factory.create(clazz, serviceName, 
wsdlURL,props);
                        
                        service.setInvoker(new BeanInvoker(new 
WebServiceImpl(params)));
                        
//                       Tell XFire to cache a DOM document for the various 
in/out/fault flows
                        service.addInHandler(new 
org.codehaus.xfire.util.dom.DOMInHandler());
                        service.addOutHandler(new 
org.codehaus.xfire.util.dom.DOMOutHandler());
                        service.addFaultHandler(new 
org.codehaus.xfire.util.dom.DOMOutHandler());

//                       Add a logging handler to each flow
                        service.addInHandler(new 
org.codehaus.xfire.util.LoggingHandler());
                        service.addOutHandler(new 
org.codehaus.xfire.util.LoggingHandler());
                        service.addFaultHandler(new 
org.codehaus.xfire.util.LoggingHandler());
                        
//                      we register the service with the controller that 
handles soap requests
                        getController().getServiceRegistry().register(service);
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
        }

When i use this servlet and call the web service, i get the following
exception (if logging is turned on of course) on the server:

Received message to /dman/ws/DManWebService
adding handler [EMAIL PROTECTED]
to phase dispatch
adding handler [EMAIL PROTECTED]
to phase parse
adding handler [EMAIL PROTECTED]
to phase pre-invoke
adding handler [EMAIL PROTECTED]
to phase dispatch
adding handler [EMAIL PROTECTED]
to phase dispatch
adding handler [EMAIL PROTECTED]
to phase dispatch
adding handler [EMAIL PROTECTED]
to phase service
adding handler [EMAIL PROTECTED]
to phase service
adding handler [EMAIL PROTECTED] to phase parse
adding handler [EMAIL PROTECTED] to phase user
Invoking phase transport
Invoking phase parse
Invoking handler org.codehaus.xfire.util.dom.DOMInHandler in phase parse
Invoking handler org.codehaus.xfire.soap.handler.ReadHeadersHandler in
phase parse
Invoking phase pre-dispatch
Invoking phase dispatch
Invoking handler org.codehaus.xfire.handler.LocateBindingHandler in
phase dispatch
Invoking handler org.codehaus.xfire.soap.handler.SoapBodyHandler in
phase dispatch
Fault occurred!
org.codehaus.xfire.fault.XFireFault: Parameter
{http://www.securit.be/webservice}requestDdmById does not exist!
        at 
org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:201)
        at 
org.codehaus.xfire.service.binding.DocumentBinding.readMessage(DocumentBinding.java:35)
        at 
org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
        at 
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
        at 
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
        at 
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
        at 
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
        at 
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
        at 
org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
        at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at 
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
        at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
adding handler [EMAIL PROTECTED]
to phase post-invoke
adding handler [EMAIL PROTECTED]
to phase transport
adding handler [EMAIL PROTECTED] to phase send
adding handler [EMAIL PROTECTED]
to phase user
adding handler [EMAIL PROTECTED] to
phase post-invoke
adding handler [EMAIL PROTECTED] to phase user
Invoking phase post-invoke
Invoking handler org.codehaus.xfire.util.dom.DOMOutHandler in phase post-invoke
Invoking handler
org.codehaus.xfire.soap.handler.FaultSoapSerializerHandler in phase
post-invoke
Invoking phase policy
Invoking phase user
Invoking handler org.codehaus.xfire.util.LoggingHandler in phase user
<?xml version="1.0" encoding="UTF-8"?>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Parameter
{http://www.securit.be/dman/ddm/webservice}requestDdmById does not
exist!</faultstring>
</soap:Fault>

The wsdl is available, but the client cant call the webservice.

when i use spring (as used in the jaxws-spring example) everything
works, but I need to create my implemtation with the call:

service.setInvoker(new BeanInvoker(new WebServiceImpl(params)));

Any Help would be appreciated

Guy

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to