Hi..
Thank you for replying on my message.
I'm new to XFire, that's why I started with a small test : Java Swing GUI to
authenticate user, the authentification process is a webservice method
returning true.
Here's the code for the GUI ActionListener ( after removing all comments)
The following line is throwing the exception :
client1.invoke("login", new Object[]{username, password});
public void actionPerformed(ActionEvent e) {
try {
if(e.getSource() == loginBtn) {
if(usernameTxt.getText() != null && usernameTxt.getText().length() > 0 &&
passwordTxt.getPassword() != null && passwordTxt.getPassword().length >0){
String username = usernameTxt.getText();
String password = new String(passwordTxt.getPassword());
try{
Client client1 = new Client(new
URL("http://localhost:8080/ldap/services/ldapservice?WSDL"));
client1.invoke("login", new Object[]{username, password});
}catch(Exception exp){
System.out.println("exception "+exp);
}
}
else{
Boot.showError("Error", "Username and password cannot be blank", new
Exception());
}
}
else if(e.getSource() == cancelBtn) {
usernameTxt.setText("");
passwordTxt.setText("");
}
}
catch(Exception ioExp) {
Boot.showError("Error", ioExp.getMessage(), ioExp);
}
}
and 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)
----- Original Message -----
From: Mohammed El ammaria
To: [email protected]
Sent: Saturday, March 31, 2007 9:12 PM
Subject: Re: [xfire-user] prefix cannot be "null" when creating a QName
I'm not sur that your ptoblem is linked to xfire, wath 's in your
Console.java line :156 ?
Mohamed
2007/3/31, Youssef Moussa < [EMAIL PROTECTED]>:
Hi..
Please help to resolve this error. I'm missing something but what I don't
know. I'm using xfire 1.4, tomcat 5
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)
at com.imetrik.ims.console.Console.actionPerformed(
Console.java:156)
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) {
// TODO Auto-generated method stub
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
--
Mohammed El AMMARIA