Search in sources :

Example 11 with WebParam

use of javax.jws.WebParam in project cxf by apache.

the class CodeGenBugTest method testCXF2935.

@Test
public void testCXF2935() throws Exception {
    env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/cxf2935/webservice.wsdl"));
    env.put(ToolConstants.CFG_ALLOW_ELEMENT_REFS, "true");
    processor.setContext(env);
    processor.execute();
    Class<?> clz = classLoader.loadClass("org.apache.cxf.WebParamWebService");
    WebParam webParam = AnnotationUtil.getWebParam(clz.getMethods()[0], "Name");
    assertEquals("helloString/Name", webParam.targetNamespace());
}
Also used : WebParam(javax.jws.WebParam) AbstractCodeGenTest(org.apache.cxf.tools.wsdlto.AbstractCodeGenTest) Test(org.junit.Test)

Example 12 with WebParam

use of javax.jws.WebParam 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());
    assertEquals(true, webParamAnno.header());
    assertEquals("header_info", webParamAnno.partName());
}
Also used : WebParam(javax.jws.WebParam) SOAPBinding(javax.jws.soap.SOAPBinding) Method(java.lang.reflect.Method) WebMethod(javax.jws.WebMethod) File(java.io.File) AbstractCodeGenTest(org.apache.cxf.tools.wsdlto.AbstractCodeGenTest) Test(org.junit.Test)

Example 13 with WebParam

use of javax.jws.WebParam in project cxf by apache.

the class CodeGenTest method testHeaderFromAnotherMessage2.

@Test
public void testHeaderFromAnotherMessage2() throws Exception {
    env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/pizza.wsdl"));
    env.remove(ToolConstants.CFG_VALIDATE_WSDL);
    processor.setContext(env);
    processor.execute();
    assertNotNull(output);
    Class<?> clz = classLoader.loadClass("com.mypizzaco.pizza.PizzaPortType");
    Method[] meths = clz.getMethods();
    for (Method m : meths) {
        if ("orderPizzaBroken".equals(m.getName())) {
            Annotation[][] annotations = m.getParameterAnnotations();
            assertEquals(1, annotations.length);
            for (int i = 0; i < 1; i++) {
                assertTrue(annotations[i][0] instanceof WebParam);
                WebParam parm = (WebParam) annotations[i][0];
                if ("OrderPizza".equals(parm.name())) {
                    assertEquals("http://mypizzaco.com/pizza/types", parm.targetNamespace());
                    assertEquals("OrderPizza", parm.name());
                    assertTrue(!parm.header());
                } else if ("CallerIDHeader".equals(parm.name())) {
                    fail("If the exsh turned off, should not generate this parameter");
                } else {
                    fail("No WebParam found!");
                }
            }
        }
    }
}
Also used : WebParam(javax.jws.WebParam) Method(java.lang.reflect.Method) WebMethod(javax.jws.WebMethod) AbstractCodeGenTest(org.apache.cxf.tools.wsdlto.AbstractCodeGenTest) Test(org.junit.Test)

Example 14 with WebParam

use of javax.jws.WebParam in project cxf by apache.

the class CodeGenTest method testRefTNS.

@Test
public void testRefTNS() throws Exception {
    env.put(ToolConstants.CFG_WSDLURL, getLocation("/wsdl2java_wsdl/locator.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 locator = new File(apache, "locator");
    assertTrue(locator.exists());
    File locatorService = new File(locator, "LocatorService.java");
    assertTrue(locatorService.exists());
    Class<?> clz = classLoader.loadClass("org.apache.locator.LocatorService");
    Class<?> paraClass = classLoader.loadClass("org.apache.locator.types.QueryEndpoints");
    Method method = clz.getMethod("queryEndpoints", new Class[] { paraClass });
    WebResult webRes = AnnotationUtil.getPrivMethodAnnotation(method, WebResult.class);
    assertEquals("http://apache.org/locator/types", webRes.targetNamespace());
    assertEquals("queryEndpointsResponse", webRes.name());
    WebParam webParamAnn = AnnotationUtil.getWebParam(method, "queryEndpoints");
    assertEquals("http://apache.org/locator/types", webParamAnn.targetNamespace());
    method = clz.getMethod("deregisterPeerManager", new Class[] { String.class });
    webParamAnn = AnnotationUtil.getWebParam(method, "node_id");
    assertEquals("", webParamAnn.targetNamespace());
}
Also used : WebParam(javax.jws.WebParam) ObjectStreamClass(java.io.ObjectStreamClass) Method(java.lang.reflect.Method) WebMethod(javax.jws.WebMethod) WebResult(javax.jws.WebResult) File(java.io.File) AbstractCodeGenTest(org.apache.cxf.tools.wsdlto.AbstractCodeGenTest) Test(org.junit.Test)

Example 15 with WebParam

use of javax.jws.WebParam 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());
}
Also used : WebService(javax.jws.WebService) Oneway(javax.jws.Oneway) ResponseWrapper(javax.xml.ws.ResponseWrapper) SOAPBinding(javax.jws.soap.SOAPBinding) Method(java.lang.reflect.Method) WebMethod(javax.jws.WebMethod) WebMethod(javax.jws.WebMethod) WebParam(javax.jws.WebParam) RequestWrapper(javax.xml.ws.RequestWrapper) ObjectStreamClass(java.io.ObjectStreamClass) WebResult(javax.jws.WebResult) File(java.io.File) AbstractCodeGenTest(org.apache.cxf.tools.wsdlto.AbstractCodeGenTest) Test(org.junit.Test)

Aggregations

WebParam (javax.jws.WebParam)28 Test (org.junit.Test)15 Method (java.lang.reflect.Method)14 WebMethod (javax.jws.WebMethod)12 AbstractCodeGenTest (org.apache.cxf.tools.wsdlto.AbstractCodeGenTest)12 Annotation (java.lang.annotation.Annotation)7 File (java.io.File)5 WebResult (javax.jws.WebResult)5 ArrayList (java.util.ArrayList)4 QName (javax.xml.namespace.QName)4 SOAPBinding (javax.jws.soap.SOAPBinding)3 ObjectStreamClass (java.io.ObjectStreamClass)2 Type (java.lang.reflect.Type)2 Holder (javax.xml.ws.Holder)2 RequestWrapper (javax.xml.ws.RequestWrapper)2 ResponseWrapper (javax.xml.ws.ResponseWrapper)2 MessagePartInfo (org.apache.cxf.service.model.MessagePartInfo)2 JavaField (org.apache.cxf.tools.common.model.JavaField)2 ParameterizedType (java.lang.reflect.ParameterizedType)1 Oneway (javax.jws.Oneway)1