java - 为SOAP Ws调用RPC对象的modify方法

时间:2018-04-12 09:39:32

标签: java soap rpc

我需要在我的ws客户端中覆盖类存根中的方法。问题是这个类(和其他)是自动生成的(Eclipse使用wsdl文件)。

所以,我不想直接在类存根中重写方法

可以做一个"包装"或"注入"基于此方法的此类中的方法 或者可以"处理"调用对象并在调用之前修改它?

public com.www.data.GetTripRecordResponseTypeTripRecordReport[] getTripRecord(com.www.data.GetTripRecordRequestType getTripRecordRequest/*,String address*/) throws java.rmi.RemoteException {
        if (super.cachedEndpoint == null) {
            throw new org.apache.axis.NoEndPointException();
        }
        org.apache.axis.client.Call _call = createCall();
        _call.setOperation(_operations[1]);
        _call.setUseSOAPAction(true);
        _call.setSOAPActionURI("getTripRecord");
        _call.setEncodingStyle(null);
            _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
        _call.setOperationName(new javax.xml.namespace.QName("http://localhost/data", "getTripRecord"));

// Code to inject before invocating the _call object
        if(address != null)
                {
                    Transport trans = _call.getTransportForProtocol("http");
                    trans.setUrl(address);
                    _call.setTransport(trans);
                }

                try {        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {getTripRecordRequest});

1 个答案:

答案 0 :(得分:0)

您可以扩展该类并覆盖该方法。更好的方法是尝试从现有方法中获取结果,然后尝试在代码中处理它。