Problem z przykładowym klientem WebService

0

Witam,

od niedawna piszę programy w Javie. Sytuacja zmusiła mnie do nauczenia się korzystania z Web Services. Korzystam z najnowszego NetBeans 6.01. Na stronie aplikacji znalazłem przykład tworzenia serwisu webowego. Niestety. przykład opiera się na wersji 5 IDE i nie wszystko udało mi się zrobić dokładnie zgodnie z instrukcją. O ile część serwerowa działa poprawnie (a przynajmniej takie mam wrażenie) o tyle nie jestem w stanie skompilować klienta.

Symptomy problemu:

  1. Wpisanie URL: http://localhost:8080/HiWS/HiWS?WSDL zwraca komunikat błędu: HTTP 404 zamiast WSDL. W konfiguracji serwera glassfish znalazłem adres następujący: http://localhost:8080/HiWS/HiWSService?wsdl. Ten adres zwraca poprawny WSDL.
    2)Zgodnie z instrukcją powinna istnieć możliwość przetestowania usługi z projektu klienta po rozwinieciu drzewa "Web service references -> nazwa serwisu -> port -> nazwa funkcji". W każdym przypadku menu kontekstowe udostępnia jedynie bezwartościowe polecenie "Proporties".
  2. Kompilator odrzuca funkcję getHiWSSEIPort() jako nieznaną.
package org.me.hi;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HiServlet extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     response.setContentType("text/html;charset=UTF-8");
     PrintWriter out = response.getWriter();

     out.println("<html>");
     out.println("<head>");
     out.println("<title>Servlet HiServlet</title>");
     out.println("</head>");
     out.println("<body>");


     out.println("<p>Enter your name:</p>");
     out.println("<form method=\"get\">");
     out.println("<input type=\"text\" name=\"name\" size=\"25\">");
     out.println("<br>");
     out.println("<p>");
     out.println("<input type=\"submit\" value=\"Submit\">");
     out.println("</form>");
     String name = request.getParameter("name");

     if ( name != null ) {
        try {
    	  out.println(getHiWSSEIPort().sayHi(name));
        } catch(java.rmi.RemoteException ex) {
          out.println("<p>Caught an exception <p>" + ex);
        }
     }

     out.println("</body>");
     out.println("</html>");
     out.close();
 }
}

Parser WSDL nie zgłaszał błędów podczas analizy. Żaden z wykonanych przeze mnie kroków podanych w instrukcji nie skończył się wynikiem negatywnym.

Gdzie mogę szukać problemu ?

</url>
0

A że tak zapytam wrednie, czy masz uruchomiony sam WebService, czy masz wygenerowane namiastki komunikacyjne i czy rozumiesz jak działa ta architektura?

0

Nie mieszałbym wredności ze szczerością ;)
Znalazłem w googlach sporo encyklopedycznej wiedzy na temat WSDL i SOAP i całej idei WS. Ale to tylko teoria.
Robiąc przykład krok po kroku liczyłem, że się nauczę i od małych przykładów dojdę do czegoś pożytecznego.
W PHP udało mi się zrobić kilka przykładów, ale moim celem, do którego muszę dojść w ten czy inny sposób jest aplet korzystający z bazy danych za pośrednictwem web serwisu.

Jeśli ktoś może się podzielić linkiem, który ułatwi mi samodzielne rozwiązanie problemu, to też będę wdzięczny.

0

http://koziolekweb.blogspot.com/2007/12/ejb3-webservices-j2se-client-nic-doda_09.html pełen przykład klient SE + webservice w technologii EJB.
Osobiście zastanowił bym się nad JNDI i bezpośrednim wywoływaniem obiektów lub nad Java web start. Na początku aplet z WS jest dość ciężki.

0

Serdeczne dzięki :)

Ja z kolei po długich poszukiwaniach natrafiłem na przykład z użyciem Jeronimo, natomiast po polsku i pod NetBeans 6:
Tworzenie usługi sieciowej z JAX-WS, Apache Geronimo 2 i NetBeans 6
oraz zawarty w nim link do strony NetBeans6:
Getting Started with JAX-WS Web Service Clients

Wiem, że nie będzie to proste zwłaszcza gdy sama Java jest dla mnie ciągle nowością. Bardzo jest mi potrzebny jakiś sukces aby się zmobilizować do dalszej pracy ....

0

Dziwię się tylko, że tak długo zajęło ci odnalezienie bloga Jacka Laskowskiego. Warto poczytać i porobić te przykłady, bo są naprawdę najlepsze.

0

Cokolwiek to było, to problem jest nieaktualny.
Przykłady zamieszczone w wymienionych wcześniej linkach działają bez problemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1