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 پاسخ 528 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Simpath (187 امتیاز)
+1 امتیاز
0 پاسخ 993 بازدید
+1 امتیاز
1 پاسخ 1.9هزار بازدید
+1 امتیاز
0 پاسخ 847 بازدید
0 امتیاز
0 پاسخ 394 بازدید
0 امتیاز
1 پاسخ 1.0هزار بازدید
+1 امتیاز
2 پاسخ 715 بازدید
0 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
1 پاسخ 926 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
...