Zum Inhalt springen

Programm hängt sich auf wenn es von konsole gestartet wird


Jensiboy

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...