Kann Klasse nicht zu Servlet casten

Fabulus

Mitglied
Hallo,

ich habe hier einen SOAP-Webservice, welchen ich mit einer Android-Anwedung testen möchte.
Dazu habe ich ein Java-Projekt und ein Android-Projekt erstellt.
Als Grundlage habe ich dieses Tutorial benutzt. Ich habe auch Datenbankzugriff über Hibernate, jedoch kommt der erst später hinzu, sobald die Verbindung ohne DB auch funktioniert.

Das Java-Projekt ist eine GWT-Applikation, welche auf einem Tomcat-Server läuft.
Habe im client-Package des Projektes folgende Klasse erstellt:

Java:
package com.simple.client;

import javax.jws.WebService;

@WebService(name="WebServiceInterface",
			targetNamespace="http://simplemaps.com")
public interface MapsWebServiceInterface {

	public String getUserInfo(String userName);
	public Long register();
}

Die Implementierung auf Serverseite sieht so aus:
Java:
package com.simple.server;

import java.util.ArrayList;

import javax.jws.WebService;

import com.simple.client.MapsWebServiceInterface;

@WebService(serviceName = "MapsServiceHibernate",
			portName = "MapsPort",
			endpointInterface = "com.simple.client.MapsWebServiceInterface",
			targetNamespace = "http://simplemaps.com")
public class MapsWebServiceImpl implements MapsWebServiceInterface{

	@Override
	public String getUserInfo(String userName) {
		
		return "Test";
	}

	@Override
	public Long register() {
		
		return null;
	}

}

Meine web.xml sieht so aus (Ausschnitt):

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <servlet>
      <servlet-name>WebService</servlet-name>
		<servlet-class>com.simple.server.MapsWebServiceImpl</servlet-class>      
  </servlet>
  <servlet-mapping>
  	<servlet-name>WebService</servlet-name>
  	<url-pattern>/service</url-pattern>
  </servlet-mapping>


</web-app>


Habe die Anwendung kompiliert und auf den Server hochgeladen, wenn ich aber mit meiner Anwendung drauf zugreifen möchte, wird folgende Exception geworfen:

Code:
java.lang.ClassCastException: com.simple.server.MapsWebServiceImpl cannot be cast to javax.servlet.Servlet
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:836)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)


Der Android-Code, mit dem ich den WebService nutzen will, sieht so aus:
Java:
package com.android.simple;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SimpleMapsWSClient extends Activity {
	
	private static final String NAMESPACE = "http://simplemaps.com";
	private static String url = "http://172.18.35.100:8080/simplemaps/service";
	private static String methodName = "getUserInfo";
	private static final String SOAP_ACTION = "http://simplemaps.com/getUserInfo"; 
	
	private TextView result;
	private EditText searchName;
	private Button searchBtn;
	
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        result = (TextView) findViewById(R.id.tx_result);
        searchName = (EditText) findViewById(R.id.et_username);
        searchBtn = (Button) findViewById(R.id.sf_search);
        
        searchBtn.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				SoapObject request = new SoapObject(NAMESPACE, methodName);
				request.addProperty("arg0", searchName.getText().toString());
				
				SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
				
				envelope.setOutputSoapObject(request);
				HttpTransportSE androidHttpTransport = new HttpTransportSE(url);
				String res = "";
				try {
					androidHttpTransport.call(SOAP_ACTION, envelope);
					SoapPrimitive resultRequestSOAP = (SoapPrimitive) envelope.getResponse();
					
					
					if(resultRequestSOAP == null) {
						res = "Benutzer mit diesem Namen wurde nicht gefunden.";
					} else {
						res = resultRequestSOAP.toString();
					}
				} catch(Exception e) {
					res = e.getMessage();
				} finally {
					result.setText(res);
				}
				
			}
		});
    }
}

Weiss jemand, warum das nicht klappt und wie es richtig funktioniert?
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
die Klassen aus dem Tutorial gehen wohl auch nicht?
lieber die soweit wie möglich, evtl. mit Dummy-Inhalt statt DB-Zugriff, nutzen, statt eigene Klassen

Suche
@WebService "cannot be cast to javax.servlet.Servlet"

liefert u.a.
web services - ClassCastException in Annotated WebService in JBoss & Java 6 - Stack Overflow

hast du einen zu alten WebServer? @WebService ist ja bisschen was anderes als das klassische Handwerks-J2EE,
wo jedes Servlet auch wirklich noch ein Servlet war..,
evtl. die Suche noch auf Tomcat ausweiten, wenn du nicht bei JBoss bist
 

Fabulus

Mitglied
Ich hab das Tutorial ja quasi abgetippt, ich wüsste nicht, wo da ein Unterschied sein soll..
Mein Webserver ist ein Apache Tomcat 7, läuft hier übern XAMPP... Weiss nicht, ob der zu alt ist..
 
S

SlaterB

Gast
> Ich hab das Tutorial ja quasi abgetippt, ich wüsste nicht, wo da ein Unterschied sein soll..
jeder einzelne Tipp kann fehl gehen, mit genau den Tutorial-Klassen, deren Namen in Konfigurationen usw.
schließt du viele Möglichkeiten aus, selbst wenn du manchen Methodeninhalt ändern solltest,
na egal

hast du überhaupt je gehört, gelesen, gesehen, dass auf einem Tomcat 7 ein WebService laufen kann?
evtl. zusätzliche Plugins/ Konfigurationen nötig? vom installierten Java abhängig?
(edit: http://www.java-forum.org/soa/115515-jax-ws-webservice-tomcat-7-a.html )

dein Tutorial scheint 'Websphere Application Server Community Edition 2.1.1 (WASCE)' zu empfehlen, was immer das sein mag

hier
Re: deploying a war file and starting the application
lese ich
What web service container are you trying to use? You mentioned earlier
in the thread that WebSphere and WebLogic servers were working well.
Perhaps that's because they provide their own web service containers
while Tomcat does not?

sicheres dazu kann ich nicht sagen, aber vielleicht versuchst du zumindest mal JBoss, der sollte frei und verbreitet sein
(vor paar edits oben, scheint auch für Tomcat was zu geben)
 
Zuletzt bearbeitet von einem Moderator:
S

Spacerat

Gast
Hm... ich kenne die WebService-Annotation zwar nicht, aber ich denke mal nicht, das dadurch automatisch "javax.servlet.Servlet" erweitert wird. Kurz gesagt, dein Interface erweitert Servlet nicht und deshalb kann es auch nicht gecastet werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V CORBA: IDLj erstellt wichtige Klasse nicht Netzwerkprogrammierung 3
K kann stub klasse nicht finden ! Netzwerkprogrammierung 8
S rmi ClassNotFoundException Stub-Klasse nicht gefunden. Netzwerkprogrammierung 6
K Server Klasse starten Netzwerkprogrammierung 5
P Mit der URL Klasse einloggen... Netzwerkprogrammierung 8
N eine klasse mit server & client Netzwerkprogrammierung 5
C Frage zur Klasse DatagramPacket Netzwerkprogrammierung 2
I Problem bei Outputstreamerzeugung in anderer Klasse als Socket Netzwerkprogrammierung 5
C RMI Klasse wird unter falschem Pfad gesucht Netzwerkprogrammierung 4
K Wie mache ich es: Klasse auf Server, Funktionen per Client ausführen? Netzwerkprogrammierung 7
C Problem mit Übertragung einer Klasse in RMI Netzwerkprogrammierung 10
D Telnet-Klasse mit Hindernissen Netzwerkprogrammierung 2
I unc pfad für die klasse file? Netzwerkprogrammierung 4
G Klasse NetworkStream .NET - alternative in Java Netzwerkprogrammierung 2
E InetAddress Klasse-Probleme Netzwerkprogrammierung 4
D URL Klasse: "Intelligente" URL Funktionen ? Netzwerkprogrammierung 4
E Problem bei Sockets/InputStream über externe Klasse Netzwerkprogrammierung 5
M Suche Klasse um Paramater zu einer URL hinzuzufügen. Netzwerkprogrammierung 3
Icewind Klasse für DNS Anfragen Netzwerkprogrammierung 14
R Änderung einer Seite (Klasse URL) Netzwerkprogrammierung 2
JavaDevOp Socket Status von UDP-Port prüfen (PortUnreachableException funktioniert nicht?) Netzwerkprogrammierung 32
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
B Multicast-Nachrichten-Empfang funktioniert nicht Netzwerkprogrammierung 5
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
S BufferedStream funktioniert nicht immer Netzwerkprogrammierung 7
T OutputStream kommt nicht an Netzwerkprogrammierung 18
G UDP Packet empfangen funktioniert nicht. Netzwerkprogrammierung 16
L30nS RMI RMI-Server kann Dialog nicht volkommen anzeigen Netzwerkprogrammierung 2
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
S .jar läuft local, aber nicht remote (SSH/Terminal) Netzwerkprogrammierung 10
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
J SSL haut nicht hin Netzwerkprogrammierung 3
A Socket-Anwendung (BufferedWriter/Reader liest nicht aktuellen Wert) Netzwerkprogrammierung 6
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
J Wechsel auf Jdk13 , sfpt funktionier nicht mehr Netzwerkprogrammierung 2
Dann07 Proxy funktioniert nicht so wie gewünscht! Netzwerkprogrammierung 18
B RESTful API weiß nicht weiter Netzwerkprogrammierung 2
L Kann VM nicht ueber Host Name finden Netzwerkprogrammierung 0
V Ich finde den Fehler nicht... Netzwerkprogrammierung 2
H Einfacher Server funktioniert nicht Netzwerkprogrammierung 1
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
S Socket Webserver mit SSLSocket geht nicht Netzwerkprogrammierung 1
P RMI stub wird nicht gefunden Netzwerkprogrammierung 8
N Test Servlet funktioniert nicht Netzwerkprogrammierung 11
M com.google.gson wird nicht erkannt Netzwerkprogrammierung 2
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
D FTP ListNames() funktinoniert nicht richtig Netzwerkprogrammierung 2
Thallius JDBC getConnection kommt nicht zurück Netzwerkprogrammierung 1
KingSquizzi3 Website parsen mit Hilfe von jsoup funktioniert nicht Netzwerkprogrammierung 3
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
F Reader/ Writer werden nicht geschlossen Netzwerkprogrammierung 2
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
R Socket bei server.accept(); gehts nicht weiter Netzwerkprogrammierung 2
K Server liest Daten nicht Netzwerkprogrammierung 6
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
G Mail senden funktioniert nicht mit SSL Netzwerkprogrammierung 7
L IText mit Servlets, funktioniert nicht Netzwerkprogrammierung 0
E Gruppenchat: Über HTTPS oder nicht? Netzwerkprogrammierung 5
P nanoHttp upload.html page lädt nicht Netzwerkprogrammierung 4
M Byte Array kommt nicht an Netzwerkprogrammierung 0
X Daten können nicht sofort empfangen werden Netzwerkprogrammierung 1
D TCP Socket funktioniert nicht richtig Netzwerkprogrammierung 3
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
D Socket UDP Client reagiert nicht auf spontane Meldungen Netzwerkprogrammierung 5
C Servlet erstellen klappt nicht Netzwerkprogrammierung 3
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
S Socket (client) verbindet nicht Netzwerkprogrammierung 6
B Methoden und Konstruktoren von Java.net package werden nicht geladen Netzwerkprogrammierung 2
L Email versenden mit Java funktioniert nicht, Fehlermeldungen: MessagingException & SocketException Netzwerkprogrammierung 10
L Server anpingen (Pingzeit) ?? Pingzeit wird nicht verändert Netzwerkprogrammierung 6
C Portscanner funktioniert nicht! Netzwerkprogrammierung 8
M JSP wird im gesamten Projekt nicht neugeladen Netzwerkprogrammierung 3
B HTTP Webseite unter IP-Addresse nicht aufrufbar - unter Domain schon Netzwerkprogrammierung 9
K Chatprogramm - Server funktioniert nicht Netzwerkprogrammierung 5
A Socket ASCii Zeichen werden nicht per udp übermittelt. please help . Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
H HTTP Header Response kann nicht ausgelesen werden Netzwerkprogrammierung 4
K Socket InputStream wird nicht erzeugt Netzwerkprogrammierung 4
G FTP FTP-Client funktioniert nicht bei Modem-Verbindungen Netzwerkprogrammierung 8
R Socket SSL-Connect in Servlet - keystore wird nicht gefunden Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
V Socket Objekte werden nicht aktualisiert Netzwerkprogrammierung 2
T Server und Client verbinden nicht Netzwerkprogrammierung 6
M HTTP File Upload mit Prozessbar Funktioniert nicht. Netzwerkprogrammierung 8
K Socket byte Schleife beendet nicht Netzwerkprogrammierung 9
J FTP FTP funktioniert nicht. Netzwerkprogrammierung 5
M Socket Exception tritt auf - weiß nicht weiter Netzwerkprogrammierung 3
L Socket Client empfängt nicht Netzwerkprogrammierung 6
S anderer Rechner wird nicht gefunden Netzwerkprogrammierung 20
das-mo Client/Server sendet nicht Netzwerkprogrammierung 7
M Socket InputStream liest nicht vollständig Netzwerkprogrammierung 7
S soap kann nicht zu 127.0.0.1:8090 unter Windows verbinden Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben