Подключите сервис MULE через программу Java - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь вызвать службу mule в моей java-программе.Написал ниже программу для вызова сервиса.Но в ответ я получаю 500 кодов ошибок.Есть ли что-то, что я здесь скучаю?Может кто-нибудь, пожалуйста, просмотрите код ниже?

Через SOAP UI я могу получить ответ.Но через программу Java служба не вызывает.Не уверен, в чем разница между установлением соединения через SOAP UI и Java-программой.

package com.test;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.RequestWrapper;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;

public class test {

private static final String TEST_SOURCE = "test_source";
private static final String TEST_REGION = "test_region";
private static final String TEST_TID = "test_tid";
private static final String TEST_IPADDRESS = "test_ipaddress";
private static final String TEST_APPID = "test_appid";
private static final String CLIENT_SECRET = "client_secret";
private static final String CLIENT_ID = "client_id";
private static final String APPLICATION = "ADE";
private static final String MULE_URL = "https://apis-ait.xxx.com/nonBilling/v1/eProxy/services/customerinform";

public static void main(String[] args) {
    try {
        javax.net.ssl.SSLSocketFactory WAS_SSLFactory = (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory
                .getDefault();
        org.apache.http.conn.ssl.SSLSocketFactory socketFactory = new org.apache.http.conn.ssl.SSLSocketFactory(
                WAS_SSLFactory, org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
        org.apache.http.conn.scheme.Scheme sch = new org.apache.http.conn.scheme.Scheme("https", 443,
                socketFactory);

        HttpParams httpParams = new BasicHttpParams();
        DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
        httpClient.getConnectionManager().getSchemeRegistry().register(sch);
        HttpPost httpPost = new HttpPost(MULE_URL);

        httpPost.setHeader(CLIENT_ID, "213xxxxx");
        httpPost.setHeader(CLIENT_SECRET, "282Dxxxxxxx");
        httpPost.setHeader(TEST_TID, String.valueOf(java.util.UUID.randomUUID()));
        httpPost.setHeader(TEST_APPID, APPLICATION);
        httpPost.setHeader(TEST_SOURCE, APPLICATION);
        httpPost.setHeader(TEST_REGION, "MA11");
        httpPost.setHeader(TEST_IPADDRESS, "x.x.x.x");

        String soapXML = "<retrieveCustomers><systemName>ADE</systemName></requestHeader><customerGroupAgentUserId>guzm254</customerGroupAgentUserId><customerSearchRequest><agreementReferenceSearchIndicatorAsString>Y</agreementReferenceSearchIndicatorAsString><billingAccountReferenceSearchIndicatorAsString>N</billingAccountReferenceSearchIndicatorAsString><searchCategoryTypeAsString>A_AOR</searchCategoryTypeAsString><customerSearchCriteria ><agentReference>880417</agentReference><agreementReference>189857278</agreementReference><alternateCustomerReference>635671214</alternateCustomerReference></customerSearchCriteria></customerSearchRequest></retrieveCustomers>";
        StringEntity stringEntity = new StringEntity(soapXML);
        httpPost.setEntity(stringEntity);
        httpPost.setHeader("Content-type", "application/xml");
        httpPost.setHeader("SOAPAction", "");

        RequestWrapper requestWrapper = new RequestWrapper(httpPost);
        HttpResponse response = httpClient.execute(requestWrapper);
        System.out.println("StatusCode >> " + response.getStatusLine().getStatusCode());
        System.out.println("sendToECMSService(), response = " + response);

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

 }

Получение кода ошибки 500.Должен привести код успеха.

...