Hi
Ich arbeite mit Tomcatserver 5.5 und Axis. Meine Entwicklungsumgebung ist Eclipse.
Ich habe einen Client generiert, aber nicht durch die wsdl-Datei, sondern per Hand.
Mein Webservice-Methode sieht so aus:
Der Client soll diese Methode dann so ungefähr aufrufen
Aber ich bekomme die Fehlermeldung:
Kann ich die Parametern beim Client nicht so übergebe?
LG
Ich arbeite mit Tomcatserver 5.5 und Axis. Meine Entwicklungsumgebung ist Eclipse.
Ich habe einen Client generiert, aber nicht durch die wsdl-Datei, sondern per Hand.
Mein Webservice-Methode sieht so aus:
Java:
public String checkUpdate(String date, String username, String password){
String hashcode = checkUpdate.checkUpdate(date, username, password);
return hashcode;
}
Der Client soll diese Methode dann so ungefähr aufrufen
Java:
package sd.server.webservice.client;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String endpoint = "http:localhost:8081/sdnet/services/Webserver";
Service service = new Service();
Call call = (Call) service.createCall();
try {
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperation("checkUpdate");
Object [] myParams = new Object[3];
myParams[0] = new String("2008-02-01 13:07:00");
myParams[1] = new String("InternetBenutzer");
myParams[2] = new String("1ttu2sz");
try {
Object bla = call.invoke(myParams);
//System.out.println(hashCode);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Aber ich bekomme die Fehlermeldung:
Java:
AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (400)Bad Request
faultActor:
faultNode:
faultDetail:
{}:return code: 400
&!DOCTYPE HTML PUBLIC &-//IETF//DTD HTML 2.0//EN&&
&html&&head&
&title&400 Bad Request&/title&
&/head&&body&
&h1&Bad Request&/h1&
&p&Your browser sent a request that this server could not understand.&br /&
&/p&
&/body&&/html&
{http://xml.apache.org/axis/}HttpErrorCode:400
(400)Bad Request
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at sd.server.webservice.client.Client.main(Client.java:34)
Kann ich die Parametern beim Client nicht so übergebe?
LG