# Problem mit der Methode request.getRemotePort()



## firestone (23. Dez 2009)

Hallo zusammen,

ich habe ein Verständnisproblem.

Folgendes ich habe in einer meiner Actionklasse folgenden Block an Ausgaben stehen. 

[Java]
log.warn("************Rechner2: "+request.getRemoteHost());	
log.warn("************Adresse: "+request.getRemoteAddr());
log.warn("************User: "+request.getRemoteUser());
log.warn("************Port: "+request.getRemotePort());
[/Java]

Es gibt 2 Möglichkeiten wie diese Actionklasse aufgerufen wird 

Möglichkeit 1: 
Die Actionklasse wird aufgerufen und läuft direkt bis zum Ende durch dann funktioniert der Auruf des oben genannten Blocks fehlerfrei

Möglichkeit 2:
Die Actionklasse wird aufgerufen aber bevor der Block aufgerufen wird gibt es einen Forward. Dieser Forward führt über eine andere JSP Seite wieder zurück zu dieser Action. Also wenn die andere JSP abgearbeitet wurde wird die gleiche Action wieder aufgerufen. Nun bekomme ich folgenden Fehler 


```
23.12.09 11:27:49:429 CET] 000000dd ServletWrappe E   SRVE0068E: Es wurde eine Ausnahme angefangen, die in einer der Servicemethoden des Servlet action ausgel�st wurde. Ausgel�ste Ausnahme: java.lang.AbstractMethodError: javax/servlet/ServletRequest : Attempting to invoke unimplemented abstract or interface method
	at java.lang.Throwable.<init>(Throwable.java:195)
	at java.lang.Error.<init>(Error.java:49)
	at java.lang.LinkageError.<init>(LinkageError.java:36)
	at java.lang.IncompatibleClassChangeError.<init>(IncompatibleClassChangeError.java:36)
	at java.lang.AbstractMethodError.<init>(AbstractMethodError.java:37)
	at de.bsdwest.basweb.vertrieb.control.LieferscheinAbschliessenAuslesenAction.executeSecure(LieferscheinAbschliessenAuslesenAction.java:126)
	at de.bsdwest.basweb.webcore.control.SecureAction.executeAction(SecureAction.java:114)
	at de.bsdwest.basweb.webcore.control.BaseAction.execute(BaseAction.java:170)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1152)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1087)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:837)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:680)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:588)
	at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:524)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:321)
	at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
	at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
	at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
	at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1152)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1087)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
	at de.bsdwest.basweb.webcore.filter.PersistenceFilter.doFilter(PersistenceFilter.java:84)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
	at de.bsdwest.basweb.webcore.filter.ErrorFilter.doFilter(ErrorFilter.java:44)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:837)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:680)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:588)
	at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:524)
	at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3548)
	at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:269)
	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:818)
	at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)
	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:125)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
	at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:556)
	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:606)
	at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:979)
	at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1064)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1485)

[/Java]

Dieser Fehler wird von der abfrage
[code=Java]
request.getRemotePort()
```
ausgelöst.

Ich verstehe jetzt nicht warum diese Methode den Fehler auslöst weil davor die Abfragen nach dem Host und dem User etc funktionieren ja weiterhin. 
Geht bei dem Weg über die andere JSP irgendwas verloren ???
Bitte helft mir ich bin etwas ratlos 

LG Fireli


----------



## firestone (29. Dez 2009)

hat keiner eine Idee woran das liegen kann


----------



## fastjack (29. Dez 2009)

Es sieht so aus, als wenn der Tomcat zur Laufzeit die Methode nicht finden kann. Probier mal eine andere servlet-api.jar im Tomcat-Lib-Verzeichnis. Oder check mal, ob da mehrere liegen.


----------

