# API 3.0 auf 2.5 setzen



## Kenan89 (30. Mai 2012)

Hallo,

ich hoffe, das Thema ist hier richtig.

Um mich mit WebSockets vertraut zu machen, habe ich in mein TomCat JWebSocket eingefügt.
Dieser startet auch korrekt, wie es im TomCatManager steht, wenn man nach dem Deployen drauf klickt.

Im Eclipse habe ich dann ein Versuchsprojekt angelegt. Diesen kann ich aber nicht TomCat 6 Server zuweisen. Anscheinend muss ich die API von 3.0 auf 2.5. Aber wie funktioniert das?

Danke im voraus.

[EDIT]

Ausserdem, verbindet er sich nicht mit dem JWebSocket, wenn ich die index.jsp nicht über Eclipse, sondern manuell über webapps öffne. Der Code dazu schaut folgendermaßen aus:

```
<!DOCTYPE html>

<html>

<head>
	<title>Websocket</title>
	<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
</head>
	
<body>

	<form action="#" id="chat_form" method = "post">
	
		<input id="msg">
		
		<input type="submit" value="senden">
	
	</form>

	<script>
		
		var websocket = new WebSocket('ws://localhost:8080');
	
		websocket.onopen = function(event){
			$('#chat').append('<br> Connection...');
		}
		
		websocket.onmessage = function(event){
			$('#chat').append(event.data);
		}
		
		websocket.onclose = function(event){
			$('#chat').append("<br> closed");
		}
		
		$(function(){
			$('form#chat_form').submit(function(e){
				e.preventDefault();
				var textfield = $('#msg');
				websocket.send(textfield.val());
				textfield.val("");
			})
		});
		
	</script>
	
</body>

</html>
```
[/EDIT]


----------



## nillehammer (30. Mai 2012)

Wenn ich die Tomcat-Doku richtig verstehe, gibt es einen eins zu eins Zusammenhang zwischen Tomcat-Version und unterstützter Servlet-API-Version:

Apache Tomcat version 5.5 implements the Servlet 2.4 and JavaServer Pages 2.0
Apache Tomcat version 6.0 implements the Servlet 2.5 and JavaServer Pages 2.1
Apache Tomcat version 7.0 implements the Servlet 3.0 and JavaServer Pages 2.2
Meines Wissens nach kann das auch nicht geändert werden. Wenn Deine Webapp auf Servlet 3.0 aufsetzt, muss sie also wohl in einem 7er-Tomcat deployt werden.


----------



## Kenan89 (31. Mai 2012)

Kann ich meine Webapp nicht runter auf 2.5 runterschalten? In einer pom.xml habe ich in google gefunden, aber was genau muss ich ändern?


----------



## Kenan89 (31. Mai 2012)

Ausserdem... Kann ich JWebSocket nicht auch ohne den TomcatManager deployen?
Ich habe im conf Ordner des tomcat Ordners in C die tomcat-users.xml so verändert, dass ich mich anmelden konnte(neuen role-User angelegt).
Kann es sein, dass der Fehler daher kommt, weil ich mit einem neu definierten User im manager den JWebSocket deployt habe?


----------



## Kenan89 (31. Mai 2012)

Laut einer anderen Einleitung brauche ich eine Java Klasse, welches den *ServletContextListener*
implementiert.
Das Problem ist, dass Eclipse nur Servlet API 2.5 für Tomcat 6 unterstützt. Da ich aber bisher, bevor ich mit WebSockets angefangen habe, zu arbeiten, immer Tomcat 7 benutzt habe, kann ich mein Projekt nicht in einem Tomcat 6 Server starten. 
Wie kann ich die Servlet APi auf 2.5 ummschalten?


----------



## nillehammer (31. Mai 2012)

> Das Problem ist, dass Eclipse nur Servlet API 2.5 für Tomcat 6 unterstützt. Da ich aber bisher, bevor ich mit WebSockets angefangen habe, zu arbeiten, immer Tomcat 7 benutzt habe, kann ich mein Projekt nicht in einem Tomcat 6 Server starten.
> Wie kann ich die Servlet APi auf 2.5 ummschalten?


Ich dachte, das wäre in meiner letzten Antwort deutlich gewesen. Es liegt nicht an Eclipse, sondern an der Tomcat-Version. Diese hat einen direkten Bezug zur Version der Servlet-API. Wenn Deine Anwendung Servlet 3.0 braucht, dann geht nur der Tomcat 7.

Wenn Dich das stört, dann such in Deiner Webapp die lib, die Servlet 3.0 braucht und versuch, sie rauszuschmeißen, downzugraden o.ä.


----------



## Kenan89 (31. Mai 2012)

Das hat sich jetzt erledigt.

Bevor ich mich verrenn` fass ich noch einmal mein aktuelles Problem zusammen:

Ich möchte JWebSocket verwenden in meinen webapp Applikationen, z.B. wenn ich ein Chat programmiere.

Ich habe schon die Daten
*JWebSocketClient-1.0-nb20507
JWebSocketFullSources-1.0-nb20507
JWebSocketServer-1.0-nb20507*
runtergeladen.

Was ist der nächste Schritt?


----------

