c# العميل الاتصال جافا axis2 خدمة ويب ، وجوه "إعادة تعيين"

StackOverflow https://stackoverflow.com/questions/1426919

  •  07-07-2019
  •  | 
  •  

سؤال

أنا جديدة جدا خدمة ويب الاشياء لذا يرجى أن يكون نوع.

كنت قد كتبت بسيط فئة POJO و نشرها على axis2 server:

public class Database {

    private Project project;

    public void login(){
        project = new Project();
        project.setDescription("Hello there");
        project.setName("To me");
    }

    public Project getProject(){
        return project;
    }

}

اتصلت على خدمة من c# العميل:

localhost.Database db = new WindowsFormsApplication1.localhost.Database();
db.login();

localhost.getProjectResponse pr = new WindowsFormsApplication1.localhost.getProjectResponse();

pr = db.getProject();

عندما تصحيح استجابة باطل.في جافا نهاية, عندما اتصل getProject المشروع الكائن باطل.

ماذا يحدث ؟ كيف يمكنني الحفاظ على الدولة من المشروع بين خدمة المكالمات ؟

هل كانت مفيدة؟

المحلول

معظم الأدوات, خدمات ويب عديمي الجنسية بشكل افتراضي.أعتقد أن المحور لا يختلف.

إذا كنت ترغب في الحفاظ على الدولة بين المكالمات ثم سوف تحتاج إلى تمكين جلسات.مثال على كيفية الحفاظ على دورات في محور يمكن الاطلاع على:

http://kickjava.com/src/test/session/TestSimpleSession.java.htm

على .صافي الجانب سوف تحتاج إلى تعيين CookieContainer الطلب الخاص بك لتخزين معرف جلسة.انظر كيفية:استخدام CookieContainer للحفاظ على الدولة في خدمات الويب للحصول على مزيد من المعلومات.

أعتقد أن الكود الخاص بك سوف ننظر بشيء من هذا القبيل:

localhost.Database db = new WindowsFormsApplication1.localhost.Database();
// Assign the CookieContainer to the proxy class.  
db.CookieContainer = new System.Net.CookieContainer();

db.login();

localhost.getProjectResponse pr = new WindowsFormsApplication1.localhost.getProjectResponse();
pr.CookieContainer = db.CookieContainer;

pr = db.getProject();


أعتقد أنه يجب أن تسمح لك أن تفعل ما تريد .. ولكن أنا لا أوصي به.

خدمة تصميم واجهات مختلفة قليلا من تصميم وجوه المنحى الواجهات.واجهات خدمة عادة تجنب استخدام الدولة بدلا تتطلب المستهلك لتوفير جميع المعلومات ذات الصلة في الطلب.

من Service-Oriented Architecture:

الخدمات يجب أن تكون مستقلة ، مكتفية ذاتيا من الطلبات التي لا تتطلب المعلومات أو الدولة من طلب آخر عند تنفيذه.

بالتأكيد أنصح بقراءة هذا المقال وربما إعادة النظر في التصميم الخاص بك.

نصائح أخرى

وأنا لست متأكدا لماذاshivaspk ترك التعليق بدلا من كتابة الجواب، فمن الصحيح تماما: والمقصود المكالمات خدمة ويب (المكالمات محور ليس فقط) لتكون عديمي الجنسية، وذلك على الرغم من أن يحصل على إنشاء كائن المشروع من قبل

db.login();

وعند استدعاء

db.getProject();

ويتم استدعاؤه على سبيل المثال مختلفة من الطبقة قاعدة البيانات الخاصة بك التي تم إنشاؤها بواسطة محور لخدمة الدعوة الثانية.

وليس هناك إجابة جيدة حقا على سؤالك، إلا بالنسبة لك لإعادة التفكير في ما تحاول القيام به. إذا كنت بحاجة إلى نوع من التوثيق (عن طريق تسجيل الدخول)، ثم المصادقة يجب أن يكون جزءا من كل مكالمة خدمة الإنترنت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top