# Problem mit HTTPUnit



## alterGauner (21. Okt 2003)

Hi!

    Ich wollte mir mal automatische Tests von Webapplikationen zu Gemüte führen und bin dabei mal auf HTTPUnit gestossen. Nachdem ich mich etwas eingelesen habe, wollt ich mal das Tutorial durchmachen und bin prompt auf ein Problem gestossen, welches ich mir nicht ganz erklären kann.

Hier mal der Code des Tutorials: 

// Imports
import com.meterware.httpunit.*;
import java.io.IOException;
import java.net.MalformedURLException;
import org.xml.sax.*;

// Testklasse
public class TestCase 
{
  // Hauptfunktion
  public static void main(String[] params) 
  {        
    try 
    { 
      // Lokale Variablen            
      WebRequest  loRequest = null;            
      WebResponse loResponse= null;            

      // Initialisiere HttpUnit  
      WebConversation loConversation = new WebConversation();                        

      // Erzeuge einen Web-Request 
      loRequest  = new GetMethodWebRequest("http://localhost:80/test/index.html");            

      // Ermitteln der Response-Nachricht 
      loResponse = loConversation.getResponse(loRequest);

      // Ausgabe des Requests und Responses 
      System.out.println(loRequest);
      System.out.println("---------");
      System.out.println(loResponse);
      System.out.println("---------");

      // Ermitteln der Eingabeform
      WebForm testForm = loResponse.getForms()[0];

      // Erzeuge Web-Request
      loRequest = testForm.getRequest();

      // Setzen der Formparameter  
      loRequest.setParameter("eingabefeld", "testwert");            

      // Ermitteln der Response-Message
      loResponse = loConversation.getResponse(loRequest);

      // Ausgabe des Requestes und Responses
      System.out.println(loRequest);
      System.out.println("---------");
      System.out.println(loResponse);
    }
    catch (Exception ex) 
    {
      System.err.println("Exception: " + ex);        
    }    
  }
}

Und nun gibt es dazu folgende Exception: 

java.lang.NoSuchMethodError: org.apache.xerces.parsers.DOMParser: method <init>(Lorg/apache/xerces/xni/parser/XMLParserConfigurationV not found
	at com.meterware.httpunit.parsing.NekoDOMParser.<init>(NekoDOMParser.java:113)
	at com.meterware.httpunit.parsing.NekoDOMParser.newParser(NekoDOMParser.java:65)
	at com.meterware.httpunit.parsing.NekoHTMLParser.parse(NekoHTMLParser.java:40)
	at com.meterware.httpunit.HTMLPage.parse(HTMLPage.java:244)
	at com.meterware.httpunit.WebResponse.getReceivedPage(WebResponse.java:1014)
	at com.meterware.httpunit.WebResponse$Scriptable.load(WebResponse.java:611)
	at com.meterware.httpunit.javascript.JavaScript$Window.initialize(JavaScript.java:424)
	at com.meterware.httpunit.javascript.JavaScript.run(JavaScript.java:80)
	at com.meterware.httpunit.javascript.JavaScriptEngineFactory.associate(JavaScriptEngineFactory.java:46)
	at com.meterware.httpunit.FrameHolder.<init>(FrameHolder.java:44)
	at com.meterware.httpunit.WebWindow.<init>(WebWindow.java:218)
	at com.meterware.httpunit.WebClient.<init>(WebClient.java:50)
	at com.meterware.httpunit.WebConversation.<init>(WebConversation.java:46)
	at at.ainetservices.ais.test.TestCase.main(TestCase.java:22)
Exception in thread "main" 

*WebConversation loConversation = new WebConversation();  *
Scheinbar kommt er mit dieser Befehlszeile nicht klar. Da jedoch keine Parameter übergeben werden, noch davor irgendwelche Variablen initialisiert werden und ich mal an die Korrektheit dieses Tutorials glauben will, kann ich mir die Fehlermeldung absolut nicht erklären. Die init-Methode kommt mir auf die schnelle mal nur aus dem HTTPServlet bekannt vor... aber davon kann ich halt im Code nichts erkennen.

Danke für die Hilfe...

Grüße
      alterGauner


----------



## me.toString (27. Okt 2003)

Also ersteinmal ... <init> in der Fehlermeldung hat nix mit einer Methode init() zu tun ... sondern hier geht's um einen Konstruktor !
Die Zeile *WebConversation loConversation = new WebConversation(); * ist in Ordnung ... das muss so sein. Hast du denn auch alle jar's, die httpUnit mitbringt ( im Verzeichnis lib ) in den CLASSPATH eingebunden ? Da ist u.a. die Datei xercesImpl.jar drin ( und in dieser befindet sich die Klasse *org/apache/xerces/xni/parser/XMLParserConfiguration*, die er ja bei dir nicht finden kann. ( Wenn du mit einer alten Bibliothek von xerces arbeitest, dann nimm die neue ... [ die besteht nicht mehr aus einer jar-Datei sondern aus zweien: xmlParser-APIs.jar und xercesImpl.jar !!! ] ... da hat sich nämlich einiges geändert ... vielleicht ist das ja schon dein Problem ! ) Wenn du allerdings alles eingebunden hast, dann weiss ich auch nicht weiter ... aber probiers mal aus ... wenn's nicht klappt, dann melde dich hier noch mal  ( obwohl das Forum JSP für das Problem irgendwie nicht das richtige ist ) . Vielleicht kann ich dir dann weiter helfen ( kämpfe hier nämlich auch mit httpUnit ...  

Michael


----------

