Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
ClassLoader loader = getVerifierContext().getClassLoader();
if (wsdescriptor.implementedByWebComponent()) {
WebBundleDescriptor webBundle = (WebBundleDescriptor)wsdescriptor.getBundleDescriptor();
WebComponentDescriptor webComponent =
(WebComponentDescriptor) webBundle.
getWebComponentByCanonicalName(wsdescriptor.getWebComponentLink());
if( webComponent != null && webComponent.isServlet()) {
String servletClass = wsdescriptor.getWebComponentImpl().
getWebComponentImplementation();
if ((servletClass == null) || (!wsdescriptor.getWebComponentImpl().isServlet())) {
//result.fail, webcomponentimpl for webservice is not servlet
result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
"For [ {0} ]", new Object[] {compName.toString()}));
result.failed(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.webservices.failed", "[{0}]",
new Object[] {"The WebComponent implementation for this JAX-RPC endpoint is not a servlet"}));
}
else {
// try to load the servlet class
try {
Class cl = Class.forName(servletClass, false, getVerifierContext().getClassLoader());
//result.pass
result.addGoodDetails(smh.getLocalString ("tests.componentNameConstructor",
"For [ {0} ]", new Object[] {compName.toString()}));
result.passed(smh.getLocalString (
"com.sun.enterprise.tools.verifier.tests.webservices.clpassed",
"The [{0}] Class [{1}] exists and was loaded successfully.",
new Object[] {"Servlet Class", servletClass}));
}catch (ClassNotFoundException e) {
//result.fail could not find servlet class
result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
"For [ {0} ]", new Object[] {compName.toString()}));
result.failed(smh.getLocalString (
"com.sun.enterprise.tools.verifier.tests.webservices.clfailed",
"The [{0}] Class [{1}] could not be Loaded",
new Object[] {"Servlet Class", servletClass}));
}
}
}
else {
//result.fail, servlet-link could not be resolved
result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
"For [ {0} ]", new Object[] {compName.toString()}));
result.failed(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.webservices.failed", "[{0}]",
new Object[] {"The servlet-link for this JAX-RPC Endpoint could not be resolved"}));
}
}
else {
//result.notapplicable
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor", "For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.webservices.notapp",
"[{0}]", new Object[] {"Not Applicable since this is NOT a JAX-RPC Service Endpoint"}));
}
return result;