0 امتیاز
قبل در برنامه نویسی توسط (0 امتیاز)
ویرایش شده قبل توسط

سلام

یه وب سرویس نوشته شده با متدولوژی rpc encoded . و من اینو با پلاگین axis2 import می کنم.

دو تا پوشه برایمن میسازه که یکیش :    F:\projects\FinallTCTGenarate\src\ir\tct\www\services\getpayidbillid

و دیگری  : F:\projects\FinallTCTGenarate\src\org\example\www\getpayidbillid

این است.

داخل پوشه که example داره کلاس های : input و output داخل اون و کلاس های OPRResponse که برای گرفتن داده و کلاس OPR که برای فرستادن داده ها استفاده میشه.

و در پوشه services کلاس های کلاس های OPRResponse که برای گرفتن داده به صورت OMElement و کلاس OPR برای ارسال داداه به صورت OMElement است ویک کلاس به نام stub که کلاس opr داخل پوشه سرویس می گیره و به سمت سرور ارسال میکنه.

کد نوشته شده :

public class Run
{


    static PaymentTelOPR paymentTelOPR = new PaymentTelOPR();
    static ir.tct.www.services.getpayidbillid.PaymentTelOPR opr=new ir.tct.www.services.getpayidbillid.PaymentTelOPR();
    static PaymentTelOPRResponse telOPRResponse = new PaymentTelOPRResponse();


    public static void main(String[] args)  {

        GetPayIDBillIDStub stub= null;
        try {
            stub = new GetPayIDBillIDStub("http://80.191.40.113:8280/services/GetPayIDBillID_Proxy");
        } catch (AxisFault axisFault) {
            axisFault.printStackTrace();
        }

        //**********************start input *****************
        PaymentInput input = new PaymentInput();
        input.setPassword("123456");
        input.setTelephone(2122000015);
        input.setUsername("USERTRJ");
        paymentTelOPR.setPaymentTelOPRRequest(input);
        //***************************end input *****************

        org.apache.axiom.om.OMFactory factory = org.apache.axiom.om.OMAbstractFactory.getOMFactory();
        factory.createOMNamespace("http://www.example.org/GetPayIDBillID/","ns1");
        factory.createOMElement("http://www.example.org/GetPayIDBillID/",
                "PaymentTelOPR",
                "ns1");






        try {
            opr.setPaymentTelOPRRequest(paymentTelOPR.getOMElement(PaymentTelOPR.MY_QNAME, factory));
        } catch (ADBException e) {
            e.printStackTrace();
        }


        if (stub != null) {
            try {
                stub.paymentTelOPR(opr);
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        }else {
            System.out.println("stub = " + stub.toString() +"error" );
        }

    }

اطلاعاتی که سمت سرور ارسال میکنه به شکل :

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns2:PaymentTelOPR xmlns:ns2="http://www.tct.ir/Services/GetPayIDBillID/"><PaymentTelOPRRequest><ns1:PaymentTelOPR xmlns:ns1="http://www.example.org/GetPayIDBillID/"><PaymentTelOPRRequest><username>USERTRJ</username><password>123456</password><Telephone>2122000015</Telephone></PaymentTelOPRRequest></ns1:PaymentTelOPR></PaymentTelOPRRequest></ns2:PaymentTelOPR></soapenv:Body></soapenv:Envelope>

و جواب از سمت سرور می گیره ولی نمی تون ترجمه یا parse کن و پیغام خطا میده.

Exception in thread "main" java.lang.IllegalArgumentException: The MessageContext does not have an associated SOAPFault.
	at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:556)
	at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
	at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
	at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
	at mypackage.GetPayIDBillIDStub.paymentTelOPR(GetPayIDBillIDStub.java:190)
	at Run.main(Run.java:59)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

به نظر خود من مشکل از سمت سرور اطلاعاتی که می فرسته ناقص.

یا نحوه کد زنی من مشکل داره .

اگه نمونه مثال هم داشتید برای من ارسال کنید.

با تشکر رستمی.

 

قبل توسط (1.1هزار امتیاز)
منم فکر می کنم مشکل از سمت سرور است. برای اینکه مطمئن بشی یه sample بنویس که سرورشم خودت پیاده سازی کردی و کلاینت رو هم با همین روش پیاده سازی کن.
قبل توسط (0 امتیاز)
سلام آقای saeed .
من با soupui کار می کنم جواب می گیره و لی با intelij جواب نمی ده پیغام خطا میده.
حتی یه وب سرویس درست کردم و اجرا شد . ولی این وب سرویس جواب نمی ده .
اگه نظر دارید بگین! خیلی ممنون میشم.....
با تشکر

سوالات مشابه

+1 امتیاز
1 پاسخ 412 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Simpath (187 امتیاز)
+1 امتیاز
0 پاسخ 913 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
+1 امتیاز
0 پاسخ 778 بازدید
0 امتیاز
0 پاسخ 305 بازدید
0 امتیاز
1 پاسخ 892 بازدید
+1 امتیاز
2 پاسخ 480 بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
1 پاسخ 802 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
...