I am a new user to Axis. I modified an existing Web service that was written in
Axis. Modified the web service class to implement
javax.security.auth.callback.CallbackHandler. Added the handler method as such
below.
I could compile with no problem, but when I try to make the wsdl using the
JAVA2WSDL command I get the following error below; I got the source code for
the Callback class and put it in my project so that it could use the java
source code to generate the wsdl, but I still get this error. I would really
appreciate any help or guidance in this manner.
Thanks
Aris
make-wsdl:
[java2wsdl] Java2WSDL com.citigroup.aet.soa.csiservice.manager.SoaCsiManager
[java2wsdl] - The class javax.security.auth.callback.Callback is defined in a
java or javax package and cannot be converted into an xml schema type. An xml
schema anyType will be
used to define this class in the wsdl file.
gen-files:
[java] - The class javax.security.auth.callback.Callback is defined in a
java or javax package and cannot be converted into an xml schema type. An xml
schema anyType will be
used to define this class in the wsdl file.
[java] Parsing XML file: C:\CSISOAWebServices\wsdl\SOACSIWebServices.wsdl
[java] java.io.IOException: Type
{http://callback.auth.security.javax}Callback is referenced but not defined.
[java] at
org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:665)
[java] at
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:545)
[java] at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
[java] at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
[java] at
org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
[java] at java.lang.Thread.run(Thread.java:595)
[java] Java Result: 1
[copy] Copying 1 file to
C:\CSISOAWebServices\src\com\citigroup\aet\soa\csiservice
BUILD FAILED
C:\CSISOAWebServices\build\build.xml:186: Warning: Could not find file
C:\CSISOAWebServices\confgen\deploy.wsdd to copy.
Total time: 6 seconds
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException {
System.out.println(" In the handle method ");
System.out.println(" In the handle method ");
System.out.println(" In the handle method ");
for (int i=0; i < callbacks.length; i++) {
if (callbacks[i] instanceof DynamicPolicyCallback) {
DynamicPolicyCallback dp = (DynamicPolicyCallback)callbacks[i];
SecurityPolicy policy = dp.getSecurityPolicy();
// This simplistic callback will simply set a Dummy Assertion
// An actual implementation can locate the saml assertion and
set it
if (policy instanceof
AuthenticationTokenPolicy.SAMLAssertionBinding) {
AuthenticationTokenPolicy.SAMLAssertionBinding samlBinding =
(AuthenticationTokenPolicy.SAMLAssertionBinding)
((AuthenticationTokenPolicy.SAMLAssertionBinding)policy).clone();
if ((samlBinding.getAssertion() == null) &&
(samlBinding.getAuthorityBinding() == null)) {
System.out.println(" populateAssertion(samlBinding, dp)
");
} else if (samlBinding.getAssertion() != null) {
System.out.println("
validateSAMLAssertion(samlBinding)");
} else if ((samlBinding.getAuthorityBinding() != null) &&
(samlBinding.getAssertionId() != null)) {
System.out.println("locateSAMLAssertion(samlBinding)");
} else {
System.out.println("Missing information from SAML
Policy");
throw new UnsupportedCallbackException(null, "Missing
information from SAML Policy");
}
}
}
}