Details
Description
Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Invalid operation:
{http://www.w3.org/2001/04/xmlenc#}EncryptedData
org.codehaus.xfire.fault.XFireFault: Invalid operation:
EncryptedData
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:406)
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:79)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy0.getRefinedTopicCount(Unknown Source)
at com.monitor.client.ClientEnc.main(ClientEnc.java:47)
outsecurity.properties:
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=storepass
org.apache.ws.security.crypto.merlin.file=com/monitor/client/wss4j/clientStore.jks
java security :
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.mscapi.SunMSCAPI
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
and the client code:
public class ClientEnc {
private static XFireProxyFactory serviceFactory = new XFireProxyFactory();
public static void main(String[] args){
Service serviceModel = new ObjectServiceFactory().create(BbtForumService.class);
try {
System.out.println(System.getProperty("user.dir"));
BufferedReader br= new BufferedReader(new FileReader("server/com/monitor/client/wss4j/outsecurity.properties"));
String s;
while ((s = br.readLine()) != null)
{ System.out.println(s); } br.close();
String serviceURL = "http://localhost:8080/ws/services/BbtForumServiceEnc";
BbtForumService service = (BbtForumService)serviceFactory.create(serviceModel,
serviceURL);
Client client = ((XFireProxy)Proxy.getInvocationHandler(service)).getClient();
client.addOutHandler(new DOMOutHandler());
Properties properties = new Properties();
properties.setProperty(WSHandlerConstants.ACTION, WSHandlerConstants.ENCRYPT);
properties.setProperty(WSHandlerConstants.ENC_PROP_FILE,
"com/monitor/client/wss4j/outsecurity.properties");
//properties.setProperty(WSHandlerConstants.ENC_SYM_ALGO, WSConstants.TRIPLE_DES);
properties.setProperty(WSHandlerConstants.ENCRYPTION_USER, "server");
client.addOutHandler(new WSS4JOutHandler(properties));
int count = service.getRefinedTopicCount(20);
System.out.println("count" + count);
} catch (MalformedURLException e)
catch (IOException e)
{ // TODO Auto-generated catch block e.printStackTrace(); } }
}
I have succeeded in signature and usertoken but only the encryption. I am driver mad!