لوتس نوتس:جافا يعمل بشكل جيد عندما على وكيل ، ولكن فشل عندما على ليب جافا

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

سؤال

لقد أنشأت مستهلك خدمة ويب.أريد أن استدعاء الأسلوب الذي يدعى setCredentials حتى أتمكن من تمرير معلومات المصادقة الخاصة بي إلى الخدمة.

لدي اثنين من الكيانات التي تستورد المستهلك خدمة الويب ، وكيل ومكتبة جافا ، من المفترض أن يتم استدعاؤها من لوتوسكريبت.

الشيء الغريب هو أن كل شيء يعمل بشكل جيد على وكيل أعمالي.مكتبة يجمع موافق ، ولكن عندما يتم تنفيذه من لوتوسكريبت ويصل إلى هذا الخط stub.setCredentials("xxxx","ttttt"); جافا يلقي java.lang.nosuchmethod خطأ.ماذا يمكنني أن أفعل خطأ?

شكرا جزيلا لكم مقدما على مساعدتكم.

تحديث:

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

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

المحلول

ليس من الممكن استدعاء مستهلك خدمة ويب جافا من لوتوسكريبت (لس 2 ج).هذا هو مفصل في سر سودي7أودكي8 / أبار لو42772.وهذا ينطبق أيضا على استدعاء وكيل جافا الذي بدوره يدعو المستهلك جافا.

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

  • 40 حرف متغير / حد الطريقة
  • يمكن أن تتسبب رسائل الصابون الكبيرة للغاية في حدوث مشكلات في الأداء / التعطل.
  • الكلمات الرئيسية المحجوزة عدم تطابق في لس/وسدل / سواب.

ومع ذلك ، قمت بإنشاء موفر العينة التالي.

Class wsClass 
    Function hello ( helloText As String) As String
        hello = "Hello " + helloText
    End Function
End Class

في جبهة الخلاص الوطني تم تخزينها أنا تعيينها للسماح للمستخدمين مصادقة فقط.

ثم قمت بإنشاء مكتبات المستهلك لس وجافا المستهلك من وسدل ولدت.

بعد ذلك قمت بإنشاء نموذج التعليمات البرمجية التالي.

لوتوسكريبت

Use "LsWebServiceConsumer"

Sub Initialize
    Dim stub As New Wsclass
    Dim answer As String

    Call stub.Setcredentials("testuser", "password")

    answer = stub.Hello("world")

    MsgBox answer   

End Sub

جافا (تمت إضافة مكتبة المستهلك إلى الوكيل)

import lotus.domino.*;

public class JavaAgent extends AgentBase {

    public void NotesMain() {
      try {

          WsClass stub = new WsClassServiceLocator().getDomino();
          stub.setCredentials("testuser", "password");
          System.out.println(stub.HELLO("world"));

      } catch(Exception e) {
          e.printStackTrace();
       }
   }
}

كل من هذه عملت كما هو متوقع مع المستهلك الخاصة بهم.

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