Hi...

I tried using Proxy but it doesn't help, I got the same error " Prefix cannot 
be null when creating QName"

I thing I'm doing something wrong.
My webservice is deployed in Tomcat, and the client's classes generated from 
the wsdl file are in the client application lib directory. is it ok like that?


here is the Exception in Tomcat :
INFO: Server startup in 140094 ms

- No beans defined in application context 
[org.codehaus.xfire.transport.http.XFireConfigurableServlet$GenericWebApplicationContextX;hashCode=13787395]

- JDK 1.4+ collections available

- Commons Collections 3.x available

- Unable to locate MessageSource with name 'messageSource': using default 
[EMAIL PROTECTED]

- Unable to locate ApplicationEventMulticaster with name 
'applicationEventMulticaster': using default [EMAIL PROTECTED]

- Unable to locate ThemeSource with name 'themeSource': using default [EMAIL 
PROTECTED]

- Pre-instantiating singletons in factory 
[org.springframework.beans.factory.support.DefaultListableBeanFactory defining 
beans []; root of BeanFactory hierarchy]

- Loading XML bean definitions from class path resource 
[org/codehaus/xfire/spring/xfire.xml]

- Loading XML bean definitions from class path resource 
[org/codehaus/xfire/spring/customEditors.xml]

- Loading XML bean definitions from class path resource 
[META-INF/xfire/services.xml]

- 11 beans defined in application context 
[org.codehaus.xfire.spring.GenericApplicationContext;hashCode=24548764]

- Unable to locate MessageSource with name 'messageSource': using default 
[EMAIL PROTECTED]

- Unable to locate ApplicationEventMulticaster with name 
'applicationEventMulticaster': using default [EMAIL PROTECTED]

- Pre-instantiating singletons in factory 
[org.springframework.beans.factory.support.DefaultListableBeanFactory defining 
beans 
[xfire.customEditorConfigurer,xfire.serviceRegistry,xfire.transportManager,xfire,xfire.typeMappingRegistry,xfire.aegisBindingProvider,xfire.serviceFactory,xfire.servletController,xfire.messageServiceFactory,xfire.messageBindingProvider
 ,org.codehaus.xfire.spring.ServiceBean]; parent: 
org.springframework.beans.factory.support.DefaultListableBeanFactory defining 
beans []; root of BeanFactory hierarchy]

- Exposing service with name {ldapservice}ldapservice

- Fault occurred! java.lang.IllegalArgumentException: prefix cannot be "null" 
when creating a QName 

at javax.xml.namespace.QName.<init>(Unknown Source)

at 
com.ctc.wstx.stax.ns.NsInputElementStack.getQName(NsInputElementStack.java:389) 

at 
com.ctc.wstx.stax.stream.BasicStreamReader.getName(BasicStreamReader.java:574) 

at 
org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:107)
 

at 
org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
 

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:709) 

at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 

at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
 

at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
 

at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 

at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 

at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) 

at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 

at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) 

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) 

at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
 

at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 

at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 

at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 

at java.lang.Thread.run(Unknown Source)



When trying to invoke a method in my webservice, I'm getting the following 
error:
SEVERE: Error:prefix cannot be "null" when creating a QName

org.codehaus.xfire.fault.XFireFault: prefix cannot be "null" when creating a 
QName

at 
org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31)
 

at 
org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28)
 

at 
org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)
 

at 
org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)
 

at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131) 

at org.codehaus.xfire.client.Client.onReceive(Client.java:387) 

at 
org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
 

at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48) 

at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26) 

at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131) 

at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75) 

at org.codehaus.xfire.client.Client.invoke(Client.java:335) 

at org.codehaus.xfire.client.Client.invoke(Client.java:349) 



client:

Client client1 = new Client(new URL(" 
http://localhost:8080/ldap/services/ldapservice?WSDL ")); 

client1.invoke("login", new Object[]{username, password}); 





It is a simple service to authenticate users.



java code: 

package

com.imetrik.ims.webservice; 


public

interface LdapService{ 



public boolean login(String username, String password); 

}

the implementation :


public boolean login(String username, String password) { 


boolean success = false; 


if(username != null && username.length() > 0 && password != null && 
password.length() > 0){ 


if(username.equalsIgnoreCase("test") && password.equalsIgnoreCase("test")) 

success = true; 

System.out.println("inside login username = "+username +" password = " + 
password ); 

}


return success; 

}



 my service.xml: 

<beans

xmlns=" http://xfire.codehaus.org/config/1.0";> 



<service> 


<name>ldapservice</name> 


<namespace>ldapservice</namespace> 


<serviceClass>com.imetrik.ims.webservice.LdapService</serviceClass> 


<implementationClass>com.imetrik.ims.webservice.LdapServiceImpl</implementationClass>
 


</service> 


</beans>

Thank you in advance

Reply via email to