Hi,
I'd like to start my secured service using SimpleHTTPServer. I created the
following program:
ConfigurationContext context = ConfigurationContextFactory
.createConfigurationContextFromFileSystem("conf",
"conf/client.axis2.xml");
AxisConfiguration config = context.getAxisConfiguration();
AxisService traser =
AxisService.createService(TraserService.class.getName(),
config, RawXMLINOutMessageReceiver.class,
"", TraserConstants.DEFAULT_NAMESPACE);
traser.addParameter(new Parameter("TraserConfiguration",
"conf/TraserService.xml"));
traser.setScope(Constants.SCOPE_APPLICATION);
traser.addModuleref("addressing");
traser.addModuleref("rahas");
traser.addModuleref("rampart");
InputStream in = new FileInputStream("conf/service.policy.xml");
Policy policy = PolicyEngine.getPolicy(in);
in.close();
SCTIssuerConfig sct =
SCTIssuerConfig.load("conf/service.sct.xml");
traser.addParameter(new Parameter("sct-issuer-config", sct));
TokenCancelerConfig tcc =
TokenCancelerConfig.load("conf/service.tcc.xml");
traser.addParameter(new Parameter("token-canceler-config",
tcc));
traser.applyPolicy(policy);
// Start server
config.addService(traser);
server = new SimpleHTTPServer(context, 8084);
server.start();
Where service.policy is the wsa:Policy from the rampart policy sample #4
services.xml, the service.sct.xml is the sct-issuer-config from the same
file and the service.tcc.xml is the token-canceler-config node (class names
and paths changed of course). When I compose a services.xml and put it under
a tomcat6 axis2 container, the service answers correctly, but when I try tor
un it under the SimpleHTTPServer, I get the following error:
org.apache.axis2.AxisFault: The server did not recognise the action which it
received:
at
org.apache.axis2.handlers.addressing.AddressingInFaultHandler.invoke(Address
ingInFaultHandler.java:108)
at org.apache.axis2.engine.Phase.invoke(Phase.java:383)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:203)
at
org.apache.axis2.engine.AxisEngine.receiveFault(AxisEngine.java:354)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperatio
n.java:370)
at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOpera
tion.java:294)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
at
org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:126)
at org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:466)
at
org.apache.rampart.util.RampartUtil.getSecConvToken(RampartUtil.java:384)
at
org.apache.rampart.builder.SymmetricBindingBuilder.initializeTokens(Symmetri
cBindingBuilder.java:611)
at
org.apache.rampart.builder.SymmetricBindingBuilder.build(SymmetricBindingBui
lder.java:66)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:127)
at
org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:57)
at org.apache.axis2.engine.Phase.invoke(Phase.java:383)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:203)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:433)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperatio
n.java:330)
at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOpera
tion.java:294)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:500)
at net.sf.traser.TestClientService.runTest(TestClientService.java:131)
at net.sf.traser.TestClientService.main(TestClientService.java:71)
org.apache.axis2.AxisFault: Error in obtaining a token
at
org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:63)
at org.apache.axis2.engine.Phase.invoke(Phase.java:383)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:203)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:433)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperatio
n.java:330)
at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOpera
tion.java:294)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:500)
at net.sf.traser.TestClientService.runTest(TestClientService.java:131)
at net.sf.traser.TestClientService.main(TestClientService.java:71)
Caused by: org.apache.rampart.RampartException: Error in obtaining a token
at org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:478)
at
org.apache.rampart.util.RampartUtil.getSecConvToken(RampartUtil.java:384)
at
org.apache.rampart.builder.SymmetricBindingBuilder.initializeTokens(Symmetri
cBindingBuilder.java:611)
at
org.apache.rampart.builder.SymmetricBindingBuilder.build(SymmetricBindingBui
lder.java:66)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:127)
at
org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:57)
... 9 more
Caused by: org.apache.rahas.TrustException: Error in obtaining token from :
"http://localhost:8084/axis2/services/TraserService"
at
org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:133)
at org.apache.rampart.util.RampartUtil.getToken(RampartUtil.java:466)
... 14 more
When I copy the services XML to my conf/services/TraserService/META-INF, it
works properly. Is there any way I could initialize my service from code?
--------------------------------
Karnok Dávid
PhD Student
Engineering Management and Intelligence laboratory, Computer and Automation
Research Institute, Hungarian Academy of Sciences
http://www.sztaki.hu
http://www.emi.sztaki.hu
--------------------------------
Karnok Dávid
PhD Student
Engineering Management and Intelligence laboratory, Computer and Automation
Research Institute, Hungarian Academy of Sciences
http://www.sztaki.hu
http://www.emi.sztaki.hu