| 

.NET C# Java Javascript Exception

1
Hallo zusammen bin neu hier, ich habe folgendes Problem:

Ich muss einen Web-Service Request für Siebel realisieren und habe auch schon ein fertigen SOAP-Request als XML zur Verfügung.

Leider kriege ich immer als RepsonseCode 500 vom Server zurück. Heißt das jetzt dass die Verbindung gar nicht erst aufgebaut werden kann oder der Server mich nicht ranlässt? Hat jemand eine Idee was falsch sein könnte?

File file = new File("beispiel.xml")
def soapRequest = file.getText()

try {
def url= "http://xxx-siebel-idm.ggg.de:2200/mcrm/all/mcc/enu/webservices/start.swe?SWEExtSource=WebService"
def soapUrl = new URL(url)
System.properties.putAll( ["http.proxyHost":"10.243.105.212", "http.proxyPort":"2200","http.proxyUserName":"user...", "http.proxyPassword":"password..."] )
println System.properties
def connection = soapUrl.openConnection()
connection.setRequestMethod("POST")
connection.setRequestProperty("Content-Type" ,"text/html")
connection.setRequestProperty("SOAPAction", "")
connection.doOutput = true
println(connection.outputStream)
Writer writer = new OutputStreamWriter(connection.outputStream)
writer.write(soapRequest)
writer.flush()
writer.close()
connection.connect()
println connection.responseCode
println connection.responseMessage
def soapResponse = connection.content.text
def Envelope = new XmlSlurper().parseText(soapResponse)
println soapResponse
String reportBytes = Envelope.Body.runReportResponse.runReportReturn.reportBytes
String reportContentType = Envelope.Body.runReportResponse.runReportReturn.reportContentType

} catch (Exception e) {
println "Error occurred"
println "--------------"
println e
e.printStackTrace();
}


Bin für jeden Hinweis dankbar!
Grüße
News:
01.08.2011
Booyeoo 21 4
Marvin Steppat 4,0k 1 4 8
4 Antworten
1
Error Code 500 bedeutet "Internal Server Error". Die Verbindung wird aufgebaut und der Service antwortet dir also (mit einer Fehlermeldung). Wahrscheinlich hast du einen Fehler in deinem beispiel.xml, vorausgesetzt du rufst die richtige Adresse auf.
01.08.2011
puls200 3,8k 7
1
Danke für die schnelle Antwort,

Würde ich denn eine Error 500 bekommen wenn die Adresse falsch wäre?
ich bin mir nämlich nicht ganz sicher wie die Adresse / System.Properties nun aussehen muss, da ja irgendwo der User und das Passwort eingetragen werden müssen..

Es kann davon ausgegangen werden, dass die xml richtig ist, da ich sie erfolgreich mit SoapUI gegen den Webservice abfeuern kann...
01.08.2011
Booyeoo 21 4
1
Error 500 liefert der HTTP Server, der den Service hostet. Der Teil der Adresse ist also richtig. Das sagt dir aber nur, dass der Server den Request angenommen hat und danach irgend etwas schiefging. Ich würde einen Blick in die Server-Logs werfen..
puls200 01.08.2011
0
Ich bin evtl. einen Schritt weiter, hatte die URL auf http://xxx-siebel-idm.ggg.de:2200/mcrm/all/mcc/enu/webservices_internal gekürzt.
Zwar kriege ich als connection.responseCode nun 200 OK.. aber die SOAP-XML Response ist dann etwas schleirhaft... was mich dann wieder zu der annahme bringt dass die URL evtl doch immernoch falsch ist, allerdings führt er jetzt die zeile
def soapResponse = connection.content.text
aus, und scheitert an der
def Envelope = new XmlSlurper().parseText(soapResponse)


SOAP-XML Response:
<html>

<head>
<script>
function GotoUrl(url)
{




// Append the current hostname to the server request so that the server has
// the top level host name. This is needed to support reverse proxy servers.
url += "&SWEHo=" + this.location.hostname;
this.location = unescape(this.location.pathname) + url;

}
GotoUrl('start.swe?SWECmd=Start');
</script>
</head>

<body>
<p>Scripting is used to manage data interactions between the Siebel server/Web Server and the User Interface. This requires JavaScript to be enabled in the web browser </p>
<p>To set this up in Internet Explorer, Please perform the following.</p>
<p>Choose Tools > Internet Options > Security > Miscellaneous > set “Active Scripting ” to prompt or enable </p>
<p>Choose Tools > Internet Options > Security > Miscellaneous > set “Scripting of Java Applets ” to prompt or enable </p>
<p>For other browsers please follow equivalent instructions to enable JavaScript use and to allow Java applets to interact with JavaScript. </p>
</body>

</html>


weiß jetzt nicht ob die URL nun evtl. doch falsch ist... :-/
01.08.2011
Booyeoo 21 4
Das ist jedenfalls keine SOAP Response, kein Wunder dass der Parser daran scheitert. Die URL ist vermutlich falsch. Kannst du den Service nicht per Web-Referenz hinzufügen?
puls200 01.08.2011
Ne das ist sie wirklich nicht...Das mit der Web-Referenz geht leider nicht, da es sich hier im interenen Netzwerk befindet...oder wie meinst du das?.. Da werde ich wohl noch grübeln müssen.
Booyeoo 01.08.2011
Visual Studio -> Projekt -> Referenzen -> Rechtsklick -> webreferenz hinzufügen (geht nicht in allen Versionen). Du kannst deinen Service browsen und VS erzeugt automatisch eine Proxy-Klasse. Ist evtl. einfacher als alles "zu Fuß" zu machen.
puls200 01.08.2011
0
Visual Studio habe ich momentan leider noch nicht, aber hoffentlich in ein paar Stunden... versuche es jetzt über 2 andere wege.. :-/
02.08.2011
Booyeoo 21 4

Stelle deine Java-Frage jetzt!