Я пытаюсь вызвать службу 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.Должен привести код успеха.