Hallo Liebe Community,
mein Programm hat als Persistence Schicht einen Webservice in dem die ganzen Bestellungen etc... gespeichert sind, im Zuge der EAI hab ich doch durch zufall mal in den Adapter für den Webservice geschaut.
und ich finde er ist grauenvoll Programmiert, allerdings habe ich nun schon mit Axis versucht ihn umzubauen und ich bekomme keien Verbindung zu stande könnt Ihr bitte mal über den Code schauen und mir eure Verbesserungsvorschläge sagen. Vielleicht fällt euch ja ein Framework ein das das handlen kann.
Ich bin euch zu Dank verpflichtet
mein Programm hat als Persistence Schicht einen Webservice in dem die ganzen Bestellungen etc... gespeichert sind, im Zuge der EAI hab ich doch durch zufall mal in den Adapter für den Webservice geschaut.
und ich finde er ist grauenvoll Programmiert, allerdings habe ich nun schon mit Axis versucht ihn umzubauen und ich bekomme keien Verbindung zu stande könnt Ihr bitte mal über den Code schauen und mir eure Verbesserungsvorschläge sagen. Vielleicht fällt euch ja ein Framework ein das das handlen kann.
Java:
public class TibaSoapPersistence implements IPersistence {
private static final String SSSL_CONTEXT_INSTANCE = "SSL";
private String m_username;
private String m_password;
private String m_baseUrl;
public TibaSoapPersistence(String api_url, String username, String password)
throws KeyManagementException, NoSuchAlgorithmException {
this.m_baseUrl = api_url;
this.m_username = username;
this.m_password = password;
// disable https certificate validation
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
}};
SSLContext sc = SSLContext.getInstance(SSSL_CONTEXT_INSTANCE);
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
}
private String GetValueString(String key, String value) {
return "<tiba:" + key + ">" + value + "</tiba:" + key + ">\n";
}
private String SendRequest(String function, String valueCollection)
throws IOException {
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(m_username, m_password
.toCharArray());
}
});
URL url = new URL(this.m_baseUrl);
// generate soap message
String soapMessage = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tiba=\""
+ this.m_baseUrl + "\">\n";
soapMessage += "<soapenv:Header/>\n";
soapMessage += "<soapenv:Body>\n";
soapMessage += "<tiba:" + function + ">\n";
soapMessage += valueCollection;
soapMessage += "</tiba:" + function + ">\n";
soapMessage += "</soapenv:Body>\n";
soapMessage += "</soapenv:Envelope>\n";
//System.out.println(soapMessage);
// open and do transaction
HttpsURLConnection urlConnection = (HttpsURLConnection) url
.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.setRequestProperty("SOAPAction", "\"" + this.m_baseUrl
+ function + "\"");
urlConnection.setRequestProperty("Content-type",
"text/xml; charset=utf-8");
urlConnection.setRequestProperty("Content-length", String
.valueOf(soapMessage.length()));
PrintStream output = new PrintStream(urlConnection.getOutputStream());
// send message
output.print(soapMessage);
output.close();
// Object content = urlConnection.getContent();
InputStream in = urlConnection.getInputStream();
StringBuffer outputStr = new StringBuffer("");
BufferedReader bufread = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = bufread.readLine()) != null) {
outputStr.append(line);
}
bufread.close();
in.close();
if(outputStr.toString().indexOf("<sqlrowcount:Count>0</sqlrowcount:Count>") > 0) {
return "";
}
return outputStr.toString();
}
Ich bin euch zu Dank verpflichtet