2016-01-05 4 views
1
  • Я использую мыльный API для вызова метода службы Apex с использованием Java.
    • Я уже подключаюсь к salesforce org, используя партнерский API.
    • Я подготовил WSDL для глобального класса, где я написал метод webservice.
    • Я преобразовал этот файл JAR-файла WSDL.
    • Теперь, когда я добавил этот файл jar в свой проект и запустил это событие, вызванное методом webservice.
    • Это хорошо работает, но пока у меня есть огонь из этого события из пакета org, у меня есть исключение.

Выпуск Я знаю, вопрос, проблема пространства имен, но, did't знает, как ее решить.Проблема с пространством имен для мыла Salesforce

Вот мой пример кода.

SoapConnection globalUtilConnection = Connector.newConnection("",""); 
globalUtilConnection.getConfig().setAuthEndpoint(updatedServerURL.toString()); 
globalUtilConnection.getConfig().setServiceEndpoint(updatedServerURL.toString()); 
globalUtilConnection.setSessionHeader(activeSessionId); 
globalUtilConnection.myWebServiceMethod(); 

** Это работа отлично подходит для моей организации-разработчика Но это причиняло вопрос в орг пакета **

** Примечание: ** файл WSDL был сгенерирован от организации-разработчика.

+1

Можете ли вы разместить журнал ошибок? – mimimito

ответ

0

Итак, у вас есть класс Apex, используя ключевое слово webservice, чтобы открыть метод в качестве веб-службы SOAP?

Когда вы возьмете этот класс Apex от вас, разработчик издания org до упаковки org, он подберет пространство имен упаковки org. Это изменяет URL-адрес, который вам нужно вызвать.

Пространство имен упаковки org появится в нескольких местах в WSDL.

  1. В атрибуте xmlns:tns

    XMLNS: ТНС = "http://soap.sforce.com/schemas/class/ orgNamespace/TestClass"

  2. в атрибуте targetNamespace

    targetNamespace = "http://soap.sforce.com/schemas/class/ orgNamespace/TestClass»

  3. В soap:addresslocation атрибута

    местоположение = "https://na5.salesforce.com/services/Soap/class/ orgNamespace/TestClass"

Расположение конечной точки должно быть достаточно простым в обращении. Вы можете просто изменить URL конечной точки, чтобы включить пространство имен org в пути.

Псевдоним targetNamespace и tns будет сложнее решить. Самый простой вариант - воссоздать банку из WSDL с обновленными пространствами имен.

См. Также: Adding Namespace to Webservice Class Name

+0

Hi Daniel, Спасибо за быстрый ответ. Восстанавливающий файл jar - хорошая идея. Я уже связал, что он работает нормально в пакете org. Но, после того, как он не работал на версию разработчика org. Можем ли мы обрабатывать пространство имен прагматично, чтобы я мог использовать этот код для версии org для разработчиков и пакетной версии org. В ** partner api ** Я использовал метод, называемый ** setCalloption() для обработки пространства имен. 'connection.setCallOption (clientName, namespce);' – Chintan

+0

Могу ли я изменить эти атрибуты прагматично? – Chintan

+0

Да, у меня есть динамически добавленное пространство имен в AuthEndpoint & ServiceEndpoint, но все же у меня возникла проблема. Я также проверял свои имена, он был правильно обновлен с именами. что-то вроде: https: //NAMESPACE.serverURL/services/Soap/class/NAMESPACE/MyClass после обновления этого URL-адреса у меня возникло исключение. com.sforce.ws.SoapFaultException: операция недоступна для запроса {http://soap.sforce.com/schemas/class/MyClass}. – Chintan

Смежные вопросы