use of javax.jws.soap.SOAPBinding in project cxf by apache.
the class JaxWsServiceConfiguration method isDocumentBare.
private boolean isDocumentBare(Method method) {
SOAPBinding ann = method.getAnnotation(SOAPBinding.class);
if (ann != null) {
return ann.style().equals(SOAPBinding.Style.DOCUMENT) && ann.parameterStyle().equals(SOAPBinding.ParameterStyle.BARE);
}
ann = implInfo.getEndpointClass().getAnnotation(SOAPBinding.class);
if (ann != null) {
return ann.style().equals(SOAPBinding.Style.DOCUMENT) && ann.parameterStyle().equals(SOAPBinding.ParameterStyle.BARE);
}
return false;
}
use of javax.jws.soap.SOAPBinding in project cxf by apache.
the class JaxWsServiceConfiguration method isWrapped.
@Override
public Boolean isWrapped(Method m) {
// see if someone overrode the default value
if (getServiceFactory().getWrapped() != null) {
return getServiceFactory().getWrapped();
}
m = getDeclaredMethod(m);
SOAPBinding ann = m.getAnnotation(SOAPBinding.class);
if (ann != null) {
if (ann.style().equals(Style.RPC)) {
Message message = new Message("SOAPBinding_MESSAGE_RPC", LOG, m.getName());
throw new Fault(new JaxWsConfigurationException(message));
}
return !(ann.parameterStyle().equals(ParameterStyle.BARE));
}
return isWrapped();
}
use of javax.jws.soap.SOAPBinding in project cxf by apache.
the class CodeGenTest method testSupportXMLBindingBare.
@Test
public void testSupportXMLBindingBare() throws Exception {
env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/xml_http_bare.wsdl"));
processor.setContext(env);
processor.execute();
Class<?> clz = classLoader.loadClass("org.apache.xml_http_bare.GreetingPortType");
Method method = clz.getMethod("sayHello", new Class[] { java.lang.String.class });
assertNotNull("sayHello is not be generated", method);
SOAPBinding soapBindingAnn = clz.getAnnotation(SOAPBinding.class);
assertEquals(soapBindingAnn.parameterStyle(), SOAPBinding.ParameterStyle.BARE);
}
use of javax.jws.soap.SOAPBinding in project cxf by apache.
the class CodeGenTest method testSoapHeader.
@Test
public void testSoapHeader() throws Exception {
env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/soap_header.wsdl"));
env.put(ToolConstants.CFG_PACKAGENAME, "org.apache");
processor.setContext(env);
processor.execute();
assertNotNull(output);
File org = new File(output, "org");
assertTrue(org.exists());
File apache = new File(org, "apache");
assertTrue(apache.exists());
File[] files = apache.listFiles();
assertEquals(12, files.length);
Class<?> clz = classLoader.loadClass("org.apache.HeaderTester");
assertEquals(3, clz.getMethods().length);
SOAPBinding soapBindingAnno = AnnotationUtil.getPrivClassAnnotation(clz, SOAPBinding.class);
assertEquals("BARE", soapBindingAnno.parameterStyle().name());
assertEquals("LITERAL", soapBindingAnno.use().name());
assertEquals("DOCUMENT", soapBindingAnno.style().name());
Class<?> para = classLoader.loadClass("org.apache.InoutHeader");
Method method = clz.getMethod("inoutHeader", new Class[] { para, Holder.class });
// the SOAPBinding annotation on the class sets it to bare, thus, this annotation may
// not be generated as it would be redundant
// soapBindingAnno = AnnotationUtil.getPrivMethodAnnotation(method, SOAPBinding.class);
// assertNotNull(soapBindingAnno);
// assertEquals(SOAPBinding.ParameterStyle.BARE, soapBindingAnno.parameterStyle());
WebParam webParamAnno = AnnotationUtil.getWebParam(method, "SOAPHeaderInfo");
assertEquals("INOUT", webParamAnno.mode().name());
assertTrue(webParamAnno.header());
assertEquals("header_info", webParamAnno.partName());
}
use of javax.jws.soap.SOAPBinding in project cxf by apache.
the class CodeGenTest method testHelloWorld.
@Test
public void testHelloWorld() throws Exception {
env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/hello_world.wsdl"));
processor.setContext(env);
processor.execute();
assertNotNull(output);
File org = new File(output, "org");
assertTrue(org.exists());
File apache = new File(org, "apache");
assertTrue(apache.exists());
File cxf = new File(apache, "cxf");
assertTrue(cxf.exists());
File w2j = new File(cxf, "w2j");
assertTrue(w2j.exists());
File helloworldsoaphttp = new File(w2j, "hello_world_soap_http");
assertTrue(helloworldsoaphttp.exists());
File types = new File(helloworldsoaphttp, "types");
assertTrue(types.exists());
File[] files = helloworldsoaphttp.listFiles();
assertEquals(9, files.length);
files = types.listFiles();
assertEquals(17, files.length);
Class<?> clz = classLoader.loadClass("org.apache.cxf.w2j.hello_world_soap_http.Greeter");
assertTrue("class " + clz.getName() + " modifier is not public", Modifier.isPublic(clz.getModifiers()));
assertTrue("class " + clz.getName() + " modifier is interface", Modifier.isInterface(clz.getModifiers()));
WebService webServiceAnn = AnnotationUtil.getPrivClassAnnotation(clz, WebService.class);
assertEquals("Greeter", webServiceAnn.name());
Method method = clz.getMethod("sayHi", new Class[] {});
WebMethod webMethodAnno = AnnotationUtil.getPrivMethodAnnotation(method, WebMethod.class);
if (webMethodAnno.operationName() != null && !"".equals(webMethodAnno.operationName())) {
assertEquals(method.getName() + "()" + " Annotation : WebMethod.operationName ", "sayHi", webMethodAnno.operationName());
}
RequestWrapper requestWrapperAnn = AnnotationUtil.getPrivMethodAnnotation(method, RequestWrapper.class);
assertEquals("org.apache.cxf.w2j.hello_world_soap_http.types.SayHi", requestWrapperAnn.className());
ResponseWrapper resposneWrapperAnn = AnnotationUtil.getPrivMethodAnnotation(method, ResponseWrapper.class);
assertEquals("sayHiResponse", resposneWrapperAnn.localName());
WebResult webResultAnno = AnnotationUtil.getPrivMethodAnnotation(method, WebResult.class);
assertEquals("responseType", webResultAnno.name());
method = clz.getMethod("greetMe", new Class[] { String.class });
assertEquals("String", method.getReturnType().getSimpleName());
WebParam webParamAnn = AnnotationUtil.getWebParam(method, "requestType");
// if is wrapped, tns should be empty
assertEquals("http://cxf.apache.org/w2j/hello_world_soap_http/types", webParamAnn.targetNamespace());
// assertEquals("", webParamAnn.targetNamespace());
method = clz.getMethod("greetMeOneWay", new Class[] { String.class });
Oneway oneWayAnn = AnnotationUtil.getPrivMethodAnnotation(method, Oneway.class);
assertNotNull("OneWay Annotation is not generated", oneWayAnn);
assertEquals("void", method.getReturnType().getSimpleName());
method = clz.getMethod("greetMeSometime", new Class[] { String.class });
assertEquals("String", method.getReturnType().getSimpleName());
method = clz.getMethod("testDocLitFault", new Class[] { java.lang.String.class });
assertEquals("void", method.getReturnType().getSimpleName());
assertEquals("Exception class is not generated ", 2, method.getExceptionTypes().length);
method = clz.getMethod("testDocLitBare", new Class[] { java.lang.String.class });
webResultAnno = AnnotationUtil.getPrivMethodAnnotation(method, WebResult.class);
assertEquals("out", webResultAnno.partName());
SOAPBinding soapBindingAnno = AnnotationUtil.getPrivMethodAnnotation(method, SOAPBinding.class);
assertNotNull(soapBindingAnno);
assertEquals(SOAPBinding.ParameterStyle.BARE, soapBindingAnno.parameterStyle());
assertEquals("BareDocumentResponse", method.getReturnType().getSimpleName());
}
Aggregations