Hi,
ich sitze jetzt seit einigen Tagen an einem Problem für das Ich bisher keine Lösung finden konnte. Ich habe eine Art Kommunikationsserver mit Eclipse Juno programmiert, welcher Hl7 Nachrichten auswertet und in eine postgres Datenbank schreiben soll. In Eclipse funktioniert es auch wunderbar und Ich habe Ihn mit verschiedenen Testnachrichten gestartet. Nachdem Ich das ganze jetzt aber mit Maven zu einer jar gebaut habe funktioniert es nichtmehr. Ich bekomme zwar die Oberfläche der Applikation (Dort wird Port, Verbundungsanzahl, Logpfad eingetragen) wenn Ich aber auf meinen Start Button drücke passiert allerdings nichts.
Hier der Code des ActionAdapters:
Und hier der Message Server:
Hoffe mir kann jemand nen Tipp geben Vielen Dank für die Hilfe.
ich sitze jetzt seit einigen Tagen an einem Problem für das Ich bisher keine Lösung finden konnte. Ich habe eine Art Kommunikationsserver mit Eclipse Juno programmiert, welcher Hl7 Nachrichten auswertet und in eine postgres Datenbank schreiben soll. In Eclipse funktioniert es auch wunderbar und Ich habe Ihn mit verschiedenen Testnachrichten gestartet. Nachdem Ich das ganze jetzt aber mit Maven zu einer jar gebaut habe funktioniert es nichtmehr. Ich bekomme zwar die Oberfläche der Applikation (Dort wird Port, Verbundungsanzahl, Logpfad eingetragen) wenn Ich aber auf meinen Start Button drücke passiert allerdings nichts.
Hier der Code des ActionAdapters:
Java:
buttonListener = new ActionAdapter() {
public void actionPerformed(ActionEvent e) {
// Request a connection initiation
if (e.getActionCommand().equals("start")) {
LoggerUrl.getInstance().setUrl(loggerText.getText());
if (portText.getText().compareTo("") != 0
&& zeitText.getText().compareTo("") != 0
&& verbindungText.getText().compareTo("") != 0) {
orv = new OldRecordValidator(zeitText.getText());
ms = new MessageServer(Integer.parseInt(portText
.getText()), Integer.parseInt(verbindungText
.getText()));
orv.startServer();
ms.startServer();
startButton.setEnabled(false);
stopButton.setEnabled(true);
JOptionPane.showMessageDialog(null,
"Server wird auf Port: " + portText.getText()
+ " mit " + verbindungText.getText()
+ " Verbindungen um geöffnet");
} else
JOptionPane
.showMessageDialog(null,
"Server konnte nicht gestartet werden. Bitte überprüfen Sie Ihre eingaben");
}
// Disconnect
else {
ms.stopServer();
orv.stopServer();
JOptionPane.showMessageDialog(null,
"Der Server wurde beendet");
startButton.setEnabled(true);
stopButton.setEnabled(false);
}
}
};
Java:
public class MessageServer {
private int maxConnections;
private int listenPort;
private boolean aktiv;
private List<ConnectionHandler> handlerThreads;
private static final Logger logger = ApplicationLogger.getInstance();
public MessageServer(int aListenPort, int maxConnections) {
listenPort = aListenPort;
this.maxConnections = maxConnections;
handlerThreads = new ArrayList<ConnectionHandler>();
logger.info("Server gestartet mit " + maxConnections
+ " auf Port " + aListenPort);
setUpConnectionHandlers();
}
private void acceptConnections() {
Runnable serverRunnable = new Runnable()
{
public void run()
{
try {
ServerSocket server = new ServerSocket(listenPort, 100);
Socket clientSocket = null;
while (aktiv == true) {
clientSocket = server.accept();
handleConnection(clientSocket);
}server.close();
} catch (BindException e) {
logger.info("Unable to bind to port " + listenPort);
} catch (IOException e) {
logger.info("Unable to instantiate a ServerSocket on port: "
+ listenPort);
} }
};
Thread serverThread = new Thread(serverRunnable);
serverThread.start();
}
private void handleConnection(Socket connectionToHandle) {
ConnectionHandler.processRequest(connectionToHandle);
}
private void setUpConnectionHandlers() {
for (int i = 0; i < maxConnections; i++) {
ConnectionHandler currentHandler = new ConnectionHandler();
currentHandler.start(i);
handlerThreads.add(currentHandler);
}
}
public void startServer(){
for (int i = 0; i < handlerThreads.size(); i++) {
handlerThreads.get(i).start(i);
}
aktiv = true;
acceptConnections();
}
public void stopServer() {
this.aktiv = false;
for (int i = 0; i < handlerThreads.size(); i++) {
handlerThreads.get(i).interrupt();
handlerThreads.get(i).stop();
}logger.info("Server wurde gestoppt");
}
}
Hoffe mir kann jemand nen Tipp geben Vielen Dank für die Hilfe.