Jensiboy Geschrieben 7. Juni 2005 Geschrieben 7. Juni 2005 Hallo zusammen, ich hoffe das ihr Profis mir helfen könnt. Ich habe ein Java-Programm geschrieben das sich mit einem SAP R/3-System, und auf Anforderung des SAP-Systems dann mit einem WebService verbindet. Habe Eclipse genommen und damit läuft es auch wunderbar. Ich schaffe es auch aus der Konsole zu starten. Allerdings bleibt dabei das Programm hängen nachdem die Anforderung zur Verbindung mit dem WebService ausgeführt wurde. Habe das Coding analysiert, es bleibt hängen beim Aufruf eines Konstruktors, bzw. beim Erstellen der Instanz einer Klasse. Es gibt 2 Möglichkeiten welchen Verlauf das Programm nehmen kann. Also sobald das Programm aus der Klasse die die Main-class enthält in eine andere Klasse springt hängt es sich auf. Habe ein kleines Testprogramm geschrieben, bei dem dies ohne Probleme ging. Auch die Online-Verbindung funktioniert! Hat irgendjemand Tips woran das liegen könnte? Coding schicke ich auf Anfrage gerne persönlich zu, darf ich nicht posten, weil es für die Arbeit ist. Danke Jens Zitieren
perdian Geschrieben 8. Juni 2005 Geschrieben 8. Juni 2005 Coding schicke ich auf Anfrage gerne persönlich zu, darf ich nicht posten, weil es für die Arbeit ist.Dann versuch wenigstens den Fehler einzugrenzen und/oder genauer zu beschreiben. Wird eine Exception geworfen? Passiert einfach nix? Aus der Fehlerbeschreibung da oben lässt sich gar nix draus erkennen. Zitieren
Jensiboy Geschrieben 8. Juni 2005 Autor Geschrieben 8. Juni 2005 Das ist ja das Problem: Es kommt eben keine Exception. Durch das Log-File kann ich den Punkt an dem er scih aufhängt eben soweit eingränzen. Ich poste den Programmteil nun doch mal hier, damit das ganze evtl. klarer wird! Zum einem hängt er sich in dieser methode auf public String logon() throws Exception{ //logon zur Post Logging.loc.infoT("Betreten Class Post"); AfdLib Postlib1 = new AfdLib("C:\\WINNT\\system32\\api.conf"); String re =Postlib1.logon(); Logging.loc.infoT(re); return re; Beim anderen Programmverlauf beim Sprung in diese Klasse: public class InteractiveLocator extends org.apache.axis.client.Service implements com.AddressDoctor.validator2.addInteractive.Interactive.Interactive { // Use to get a proxy class for InteractiveSoap private final java.lang.String InteractiveSoap_address = "https://validator2.addressdoctor.com/addInteractive/Interactive.asmx"; public java.lang.String getInteractiveSoapAddress() { Logging.loc.infoT("Betreten Active Locator Klasse"); Logging.loc.infoT("Übergabe Interactive SOAP-Address"); return InteractiveSoap_address; } Ich hoffe jetzt ist das Problem verständlicher. Ich verstehe es ja selbst nicht Zitieren
perdian Geschrieben 8. Juni 2005 Geschrieben 8. Juni 2005 Verwende doch einfach mal die Code-Darstellung hier im Forum - das ist deutlich angenehmer zu lesen. Zu deinem Problem: Das ganze ist immer noch pures Raten - bist du mal mit 'nem Debugger durch den Code durchgesteppt? Darüber bekommst du schonmal raus, bei welchem Punkt noch gearbeitet wird, und ab wo nicht. Ausserdem siehst du, welche Threads noch aktiv sind. Eine Idee von mir wäre im Debugger mal zu checken, ob irgendwo versucht wird einen Socket zu öffnen, der sich beim Connecten tod läuft. Zitieren
mkScheller Geschrieben 8. Juni 2005 Geschrieben 8. Juni 2005 wenn du das programm von konsole aus aufrufst, dann logge doch einfach jede zeile bevor du sie ausführst, das wird dann in der konsole angezeigt und du siehst dann, an welcher stelle er sich aufhängt. Es scheint mir, als ob er sich nicht aufhängt sondern als wenn der pc/die applikation einfach auf daten wartet bzw. eine anweisung nicht ausgeführt werden kann. Im Notfall (und auch ziemlich krass) das alles in einen Thread auslagern und dann nach meinetwegen 10sek abbrechen. Zitieren
Jensiboy Geschrieben 8. Juni 2005 Autor Geschrieben 8. Juni 2005 Danke für die Tips, Debuggen ist leider nicht, im Eclispe läuft das Programm ja, oder kann man über die Konsole debuggen? Aber das er sich beim Connecten totläuft kann schon sein, das versucht er ja, bevor er sich aufhängt. Ich glaube auch das eine Anweisung nicht ausgeführt werden kann, und zwar die Anweisungen die ich vorin gepostet habe. Zitieren
perdian Geschrieben 8. Juni 2005 Geschrieben 8. Juni 2005 Debuggen ist leider nicht, im Eclispe läuft das Programm ja, oder kann man über die Konsole debuggen?Ohne Debugging wirst du aber nicht weiterkommen - das ist die einzige verlässliche Quelle, die dir anzeigen kann, wo genau der Fehler liegt. Ansonsten kannst du ja munter weiterraten aber du wirst zu keinem Ergebnis kommen. Und sicherlich kannst du von der Kommandozeile aus debuggen - nichts anderes macht Eclipse ja. Du übergibst dem Programm beim Start ein paar Parameter, dann kannst du über einen Port die Debug-Messages empfangen. Das ganze ist recht einfach, und von Eclipse aus wunderbar einstellbar. Habs vor ein paar Monaten recht intensiv gemacht und alles war wunderbar. Da ich die genaue Konfiguration auf der Kommandozeile und unter Eclipse jetzt nicht mehr um kopf habe googlest du am besten mal nach remote debugging und siehst dir das Tutorial von IBM an: http://www-128.ibm.com/developerworks/library/os-ecbug/#N10171 Aber das er sich beim Connecten totläuft kann schon sein, das versucht er ja, bevor er sich aufhängt.Dann solltest du genau da ansetzen. Zitieren
Jensiboy Geschrieben 9. Juni 2005 Autor Geschrieben 9. Juni 2005 Danke nochmals für eure Ratschläge, es hat sich mittlerweile erledigt. Ich hatte dem classpath nicht alle JAR-Files die das Programm verwendet zugewiesen. Jetzt funktioniert es. Hab nun eine andere Frage: Man kann doch ein Java-Programm starten indem man es in ein Jar-File packt und dieses dann per Doppelblick ausführt. Bei mir kommt dann immer die Fehlermeldung das er die Main-Klasse nicht findet. Das manifest habe ich angelegt. Wer kann mir weiterhelfen? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.