Package org.apache.axis.message

Examples of org.apache.axis.message.RPCParam


        bean.temp = 85.0F;

        MessageContext msgContext = new MessageContext(new AxisServer(new BasicServerConfig()));
        SOAPEnvelope msg = new SOAPEnvelope();

        RPCParam arg = new RPCParam("", "simple", bean);
        RPCElement body = new RPCElement("urn:myNamespace", "method1", new Object[]{ arg });
        msg.addBodyElement(body);
        body.setEncodingStyle(null);

        StringWriter writer = new StringWriter();
View Full Code Here


        Vector arglist = body.getParams();
        assertNotNull("arglist", arglist);
        assertTrue("param.size()<=0 {Should be > 0}", arglist.size() > 0);

        RPCParam param = (RPCParam) arglist.get(0);
        assertNotNull("SOAP param should not be null", param);

        Object result = param.getValue();
        if (!equals(result, expected)) {
            // Try to convert to the expected class
            if (tryConvert) {
                Object result2 = JavaUtils.convert(result, expected.getClass());
                if (!equals(result2, expected)) {
View Full Code Here

        call.setTransport(transport);

        SOAPEnvelope resEnv = call.invoke(message.getSOAPEnvelope());
        RPCElement rpcElem = (RPCElement)resEnv.getFirstBody();
        RPCParam param = (RPCParam)rpcElem.getParams().get(0);
        assertEquals("OK!", param.getValue());
    }
View Full Code Here

       Vector arglist = body.getParams();
       assertNotNull("arglist", arglist);
       assertTrue("param.size()<=0 {Should be > 0}", arglist.size()>0);

       RPCParam param = (RPCParam) arglist.get(0);
       assertNotNull("SOAP param should not be null", param);

       Object result = param.getValue();
       if (!equals(result, expected)) {
           // Try to convert to the expected class
           if (tryConvert) {
               Object result2 = JavaUtils.convert(result, expected.getClass());
               if (!equals(result2, expected)) {
View Full Code Here

            ParameterDesc param = (ParameterDesc)parameters.get(i);
            if (param.getMode() == ParameterDesc.OUT)
                continue ;

            QName paramQName = param.getQName();
            RPCParam p = new RPCParam(paramQName.getNamespaceURI(),
                                      paramQName.getLocalPart(),
                                      params[j++] );
            // Attach the ParameterDescription to the RPCParam
            // so that the serializer can use the (javaType, xmlType)
            // information.
            p.setParamDesc(param);
            result.add( p );
        }

        return( result.toArray() );
    }
View Full Code Here

                // GD 03/15/02 : We're now checking for invalid metadata
                // config at the top of this method, so don't need to do it
                // here.  Check for void return, though.
                if (!XMLType.AXIS_VOID.equals(returnType)) {
                    RPCParam param = (RPCParam)resArgs.get(0);
                    result = param.getValue();
                    outParamStart = 1;
                }

                for (int i = outParamStart; i < resArgs.size(); i++) {
                    RPCParam param = (RPCParam) resArgs.get(i);

                    Class javaType = getJavaTypeForQName(param.getQName());
                    Object value = param.getValue();

                    // Convert type if needed
                    if (javaType != null &&
                           !javaType.isAssignableFrom(value.getClass())) {
                        value = JavaUtils.convert(value, javaType);
                    }

                    outParams.put(param.getQName(), value);
                    outParamsList.add(value);
                }
            }
        } else {
            // This is a SOAPBodyElement, try to treat it like a return value
View Full Code Here

            // Make sure we respect parameter ordering if we know about it
            // from metadata, and handle whatever conversions are necessary
            // (values -> Holders, etc)
            if ( args != null && args.size() > 0 ) {
                for ( int i = 0 ; i < numArgs ; i++ ) {
                    RPCParam rpcParam = (RPCParam)args.get(i);
                    Object value = rpcParam.getValue();
                    ParameterDesc paramDesc = rpcParam.getParamDesc();
                    if (paramDesc != null && paramDesc.getJavaType() != null) {
                        value = JavaUtils.convert(value,
                                                  paramDesc.getJavaType());
                        rpcParam.setValue(value);
                        if (paramDesc.getMode() == ParameterDesc.INOUT)
                            outs.add(rpcParam);
                    }
                    if (paramDesc == null || paramDesc.getOrder() == -1) {
                        argValues[i= value;
                    } else {
                        argValues[paramDesc.getOrder()] = value;
                    }

                    if (log.isDebugEnabled()) {
                        log.debug("  " + JavaUtils.getMessage("value00",
                            "" + argValues[i]) );
                    }
                }
            }

            // Check if we can find a Method by this name
            // FIXME : Shouldn't this type of thing have already occurred?
            checkMethodName(msgContext, allowedMethods, operation.getName());

            // Now create any out holders we need to pass in
            if (numArgs < argValues.length) {
                ArrayList outParams = operation.getOutParams();
                for (int i = 0; i < outParams.size(); i++) {
                    ParameterDesc param = (ParameterDesc)outParams.get(i);
                    Class holderClass = param.getJavaType();
                    if (Holder.class.isAssignableFrom(holderClass)) {
                        argValues[numArgs + i] = holderClass.newInstance();
                        // Store an RPCParam in the outs collection so we
                        // have an easy and consistent way to write these
                        // back to the client below
                        outs.add(new RPCParam(param.getQName(),
                                              argValues[numArgs + i]));
                    } else {
                        // !!! Throw a fault here?
                    }
                }
            }

            // OK!  Now we can invoke the method
            Object objRes = operation.getMethod().invoke(obj, argValues);

            /* Now put the result in the result SOAPEnvelope */
            /*************************************************/
            RPCElement resBody = new RPCElement(methodName + "Response");
            resBody.setPrefix( body.getPrefix() );
            resBody.setNamespaceURI( body.getNamespaceURI() );
            resBody.setEncodingStyle(msgContext.getEncodingStyle());

            // Return first
            if ( operation.getMethod().getReturnType() != Void.TYPE ) {
                QName returnQName = operation.getReturnQName();
                if (returnQName == null) {
                    returnQName = new QName("", methodName + "Return");
                }
                RPCParam param = new RPCParam(returnQName, objRes);
                resBody.addParam(param);
            }

            // Then any other out params
            if (!outs.isEmpty()) {
                for (Iterator i = outs.iterator(); i.hasNext();) {
                    // We know this has a holder, so just unwrap the value
                    RPCParam param = (RPCParam) i.next();
                    Holder holder = (Holder)param.getValue();
                    param.setValue(JavaUtils.getHolderValue(holder));
                    resBody.addParam(param);
                }
            }

            resEnv.addBodyElement(resBody);
View Full Code Here

    }       

    public void doTestData (boolean multiref) throws Exception {
        MessageContext msgContext = new MessageContext(new AxisServer());
        SOAPEnvelope msg = new SOAPEnvelope();
        RPCParam arg1 = new RPCParam("urn:myNamespace", "testParam", "this is a string");
       
        Data data = new Data();
        data.stringMember = "String member";
        data.floatMember = new Float("4.54");
       
        RPCParam arg2 = new RPCParam("", "struct", data);
        RPCElement body = new RPCElement("urn:myNamespace", "method1", new Object[]{ arg1, arg2 });
        msg.addBodyElement(body);
       
        Writer stringWriter = new StringWriter();
        SerializationContext context = new SerializationContextImpl(stringWriter, msgContext);
        context.setDoMultiRefs(multiref);
       
        // Create a TypeMapping and register the specialized Type Mapping
        TypeMappingRegistry reg = context.getTypeMappingRegistry();
        TypeMapping tm = (TypeMapping) reg.createTypeMapping();
        tm.setSupportedNamespaces(new String[] {Constants.URI_CURRENT_SOAP_ENC});
        reg.register(Constants.URI_CURRENT_SOAP_ENC, tm);

        QName dataQName = new QName("typeNS", "Data");
        tm.register(Data.class, dataQName, new DataSerFactory(), new DataDeserFactory());

        msg.output(context);
       
        String msgString = stringWriter.toString();
       
        log.debug("---");
        log.debug(msgString);
        log.debug("---");
       
        StringReader reader = new StringReader(msgString);
       
        DeserializationContext dser = new DeserializationContextImpl(
            new InputSource(reader), msgContext, org.apache.axis.Message.REQUEST);
        dser.parse();
       
        SOAPEnvelope env = dser.getEnvelope();
        RPCElement rpcElem = (RPCElement)env.getFirstBody();
        RPCParam struct = rpcElem.getParam("struct");
        assertNotNull("No <struct> param", struct);
       
        Data val = (Data)struct.getValue();
        assertNotNull("No value for struct param", val);
       
        assertEquals("Data and Val string members are not equal", data.stringMember, val.stringMember);
        assertEquals("Data and Val float members are not equal",data.floatMember.floatValue(),
                     val.floatMember.floatValue(), 0.00001F);
View Full Code Here

        Vector arglist = body.getParams();
        assertNotNull("SOAP argument list was null", arglist);
        if (arglist.size()==0) return null;

        // Return the first parameter
        RPCParam param = (RPCParam) arglist.get(0);
        return param.getValue();
    }
View Full Code Here

        Vector arglist = body.getParams();
        assertNotNull("SOAP argument list was null", arglist);
        assertTrue("param.size()<=0 {Should be > 0}", arglist.size()>0);

        // Return the first parameter
        RPCParam param = (RPCParam) arglist.get(0);
        return param.getValue();
    }
View Full Code Here

TOP

Related Classes of org.apache.axis.message.RPCParam

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.