AXIS Fehler bei WS-Security

Status
Nicht offen für weitere Antworten.

maxpade

Mitglied
Hallo Allerseits,

ich möchte auf einen gesicherten WebService zugreifen (x.509) und habe einen Client,. einmal aus einer WSDL-Datei erzeugt und einmal ohne WSDL codiert, da ich dachte, dass vielleicht der fehler durch das wsdl2java kommt (ist aber wohl nicht so).
Es ist eigentlich ein einfaches Beispiel, dass ich ausprobiere. Anbei alles was ich so gemacht habe, vielleicht sieht jemand den Fehler schon aus dem Fehlercode:

Der Fehler kommt, nachdem ich die Verbindung zum Webservice aufbauen will (es wurde also fehlerlos kompiliert). Sämtliche jars sind in eclipse eingebunden. Ich habs auch in der Kommandozeile ohne Erfolg ausprobiert und weiß nicht weiter. Bitte guckt euch das an:

Egal welchen Client ich benutze bekomme ich folgende Fehlermeldung :
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xml/utils/URI$MalformedURIException
	at org.apache.ws.security.message.WSSecSignature.prepare(WSSecSignature.java:350)
	at org.apache.ws.security.message.WSSecSignature.build(WSSecSignature.java:703)
	at org.apache.ws.security.action.SignatureAction.execute(SignatureAction.java:54)
	at org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:192)
	at org.apache.ws.axis.security.WSDoAllSender.invoke(WSDoAllSender.java:170)
	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:127)
	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 ha.TestSignaturSoapBindingStub.getGreeting(TestSignaturSoapBindingStub.java:106)
	at TestSignaturClient.main(TestSignaturClient.java:18)


Mein Server sieht so aus
Code:
public class TestSignatur {
  public String getGreeting(String name)
  {
    return "Hello "+name +"!";
  }
}

Der Client sieht so aus (ohne WSDL-Ableitung:
Code:
import org.apache.axis.configuration.FileProvider;
import org.apache.axis.EngineConfiguration;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.rpc.ParameterMode;
import java.net.URL;



public class TestSignaturClient
{
 public static void main(String[] args) throws Exception
 {
	 try
	 {
		 EngineConfiguration config = new FileProvider("c:\\java\\tomcat\\webapps\\axis\\WEB-INF\\client-config.wsdd");
		 Service service = new Service(config);
		 Call call=(Call) service.createCall();
		 URL url = new URL("http://localhost:8080/axis/services/TestService");
		 call.setTargetEndpointAddress(url);
		 call.setOperationName("getGreeting");
		 call.addParameter("name",XMLType.XSD_STRING,ParameterMode.IN);
		 call.setReturnType(XMLType.XSD_STRING);

		 Object parameters[]=new Object[1];
		 parameters[0]="Tester";
		 Object returnValue=call.invoke(parameters);
		 System.out.println("Response: "+returnValue);
	 }
	 catch(Exception e)
	 {
		 e.printStackTrace();
	 }

 }
}


aus wsdl- abgeleitet:

Code:
import ha.*;

import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;

import org.apache.axis.EngineConfiguration;
import org.apache.axis.configuration.FileProvider;


public class TestSignaturClient
{
 public static void main(String[] args) throws Exception
 {
  EngineConfiguration config = new FileProvider("c:\\java\\tomcat\\webapps\\axis\\WEB-INF\\client-config.wsdd");
   TestSignaturServiceLocator loc = new TestSignaturServiceLocator(config);
   TestSignatur_PortType pt = loc.getTestSignatur();
   pt.getGreeting("hallo");
 }
}

meine server-wsdd (aussschnitt)
Code:
 <service name="TestSignatur" provider="java:RPC" style="document" use="literal">
 <requestFlow>
   <handler type="soapmonitor"/>
   <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
     <parameter name="action" value="Signature"/>
     <parameter name="signaturePropFile" value="server_crypto.properties" />
   </handler>
  </requestFlow>
  <responseFlow>
   <handler type="java:org.apache.ws.axis.security.WSDoAllSender">
     <parameter name="action" value="Signature"/>
     <parameter name="user" value="server"/>
     <parameter name="passwordCallbackClass" value="PWCallback"/>
     <parameter name="signaturePropFile" value="server_crypto.properties" />
   </handler>
   <handler type="soapmonitor"/>
  </responseFlow>
  <parameter name="className" value="TestSignatur"/>
  <parameter name="allowedMethods" value="*"/>
  <parameter name="scope" value="application"/>
 </service>

die client wsdd
Code:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
	<requestFlow >
		<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
		<parameter name="action" value="Signature"/>
		<parameter name="user" value="client"/>
		<parameter name="passwordCallbackClass" value="PWCallbackClient"/>
		<parameter name="signaturePropFile" value="client_crypto.properties" />
		<parameter name="mustUnderstand" value="false" />
                </handler>
	</requestFlow>
	<responseFlow>
		<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
		<parameter name="action" value="Signature"/>
		<parameter name="signaturePropFile" value="client_crypto.properties" />
		</handler>
	</responseFlow>
</globalConfiguration>
</deployment>

die client_crypto.properties und die client.keystore sowie die server_crypto.properties und die server.keystore sind im classes Verzeichnis :cry:
 
G

Guest

Gast
also für die, die es auch wissen möchten, man muß wohl doch die xalan.jar in die lib einbinden

cu
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B TOMCAT AXIS : Probleme bei parallele Requests Server einrichten und konfigurieren 6
B Axis 2 SOAP Nachricht verdreht Server einrichten und konfigurieren 1
A Axis + WSS4J Server einrichten und konfigurieren 1
M ArrayStoreException mit Axis Server einrichten und konfigurieren 3
A AXIS Problem mit Packages beim WSDL-Aufruf Server einrichten und konfigurieren 2
I Axis mit Proxy verwenden - ich werde wahnsinnig ! HELP ! Server einrichten und konfigurieren 4
H Objekte mit Axis übertragen Server einrichten und konfigurieren 10
S Axis Webanwendung in Tomcat verfügbar machen Server einrichten und konfigurieren 2
K [Apache Axis v1.3] HTTP Basic Authentication Server einrichten und konfigurieren 1
B Web Service mit Axis Server einrichten und konfigurieren 3
K [Tomcat+Axis] SSL funktioniert nicht Server einrichten und konfigurieren 2
R axis läuft nicht Server einrichten und konfigurieren 2
G Axis Client: NoSuchMethodError Server einrichten und konfigurieren 2
A axis läuft nicht Server einrichten und konfigurieren 12
M AXIS: Eigene Exceptions an Client übertragen Server einrichten und konfigurieren 2
M Axis - No serializer found for class Server einrichten und konfigurieren 6
C Web Services mit axis Server einrichten und konfigurieren 6
Q Probleme mit Tomcat und Axis Server einrichten und konfigurieren 5
B Tomcat Manager: umbebannt, zurückbenannt, jetzt nur noch 403-Fehler Server einrichten und konfigurieren 8
T Wildfly: Fehler beim anlegen einer DataSource Server einrichten und konfigurieren 3
C GlassFish fehler beim Deployen und kein Logging. Server einrichten und konfigurieren 2
N JBoss AS 7.1 - Fehler: Hauptklasse C: Server einrichten und konfigurieren 7
R Fehler beim TOMCAT, davor ging es noch! Server einrichten und konfigurieren 1
A Tomcat:Fehler HTTP Status 500 -> org.apache.jasper.Jasper Server einrichten und konfigurieren 1
J tools.jar fehler ::: java.lang.RuntimeException Server einrichten und konfigurieren 14
H Jetspeed2 Fehler: SQL Exception Server einrichten und konfigurieren 3
J GlassFish-Domain nicht startbar unter AVG Internet Security 2014 Server einrichten und konfigurieren 7
R Windows 2012 und Microsoft Security Essentials Server einrichten und konfigurieren 3
dzim GlassFish 2.1.1 - Authentifizierung von BASIC auf WS-Security umstellen Server einrichten und konfigurieren 3
M WSDoAllReceiver: Request does not contain required Security Server einrichten und konfigurieren 1

Ähnliche Java Themen

Neue Themen


Oben