技术开发 频道

使用 NetBeans IDE 5.0 开发 Web 服务的快速入门指南


使用 Web 服务

使用 web 服务是客户端使用 web 服务时进行的操作。使用 IDE 设置客户端很方便,所以它可以使用 web 服务。使用向导导入描述 web 服务接口的 WSDL 文件。然后将其集成到客户端,以便 web 服务执行对您有用的操作。

注意:Web 服务可用于 web 应用程序或 Java 应用程序。在下面的例子中,您只能将 web 服务用于 web 应用程序。

创建 Web 应用程序项目

  • 选择 File > New Project (Ctrl-Shift-N)。在 Categories 下选择 Web。在 Projects 下选择 Web Application。单击 Next。将项目命名为 HiWSClient,将 Project Folder 更改到计算机上的任一文件夹,并确保在 Server 下拉式列表中选择您选择的服务器。单击 Finish。

发现关于 Web 服务的信息

  1. 右键单击 HiWSClient 项目节点,选择 New > Web Service Client。在 WSDL URL 文本框中复制和粘贴正在运行的 web 服务的 URL。例如,URL 可以是以下形式:
    http://localhost:8080/HiWS/HiWS?WSDL
  2. 单击 Retrieve WSDL。当在 Local Filename 文本框中填写 WSDL 文件名时,WSDL 文件即可被正确检索到。在 Package 字段中键入 org.me.hi
  3. 根据服务器执行以下操作:
    • 对于 Sun Java System Application Server,选择 J2EE Container 生成的静态 stub。
    • 对于其他服务器(如 JBoss 应用服务或 Tomcat Web 服务器),必须选择 IDE 生成的静态 stub。
  4. 单击 Finish。
  5. 展开 Web Service Reference 节点并且保持展开节点,直到到达 sayHi 节点。右键单击 sayHi 节点并选择 Test Operation。在 Test Web Service Operation 对话框中,在 Value 文本框中键入 "John" 并单击 Submit。结果 "Hi John!" 即显示在对话框的底部。既然测试了操作,并且对公开的 web 服务对您有用的情况感到满意,您就要准备开发与其交互的客户端应用程序。

开发 Web 服务客户端

  1. 右键单击 HiWSClient 项目节点并选择 New > Servlet。命名 web 服务 HiServlet,在 Package 下拉式列表中键入 org.me.hi,单击 Next,然后单击 Finish。在 Source Editor 中打开 servlet HiServlet.java
  2. 在 Source Editor 中,在 HiServlet 类中的 processRequest 操作内右键单击。选择 Web Service Client Resources > Call Web Service Operation,选择 sayHi 操作并单击 OK。

    3.   现在填写生成的框架代码,以便与以下形式一样:

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


    4.   重新安排代码片段,以便将它放在 processRequest 方法的 <body> 标记之间:

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>"); try { out.println(getHiWSSEIPort().sayHi("John")); } catch(java.rmi.RemoteException ex) { out.println("<p>Caught an exception <p>" + ex); } out.println("</body>"); out.println("</html>"); out.close(); }
  5.  其次,要使用户能够与 web 服务交互,请向 servlet 添加一个表格并将用户输入传递到 web 服务(只有下面的 红色代码与上面的不一
样):
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(); }

 

 别忘了将字符串 "John" 改为变量 name,如上面的代码所示! 

部署 Web 服务客户端

  1. 在 Projects 窗口中右键单击 HiWSClient 项目节点,并选择 Properties。在 Project Properties 对话框中,选择 Run 窗格。执行以下操作:
    • 在 Server 下拉式列表中选择服务器。
    • 在 Relative URL 文本框中键入 /HiServlet
    • 单击 OK。
  2. 部署 web 服务客户端。应该看到类似于以下在 IDE 默认浏览器中显示的链接:

  3. 键入 "John" 并单击 Submit。现在应该看到下图:

    故障排除

    由于 IDE 提供与 Web 服务通信所需的大多数代码,所以只有您遇到的问题才是自己的代码中的错误。此外,虽如此,如果您在防火墙后面,则可能会遇到几个问题。随后的故障排除提示将试图解决这一问题。

    • 部署 Sun Java System Application Server。如果部署了应用程序而没有正确设置代理主机和端口,则会看到类似于与浏览器中此情形相似的内容:

要解决此问题,则执行以下操作:

     

  1. 在 Runtime 窗口中,确保 Sun Java System Application Server正在运行。如果正在运行,则在服务器名称的左边显示一个绿色箭头。

     

  2. 展开 Sun Java System Application Server 节点,右键单击 JVM 节点并选择 Properties。

     

  3. 单击 JVMOptions 属性右边的省略号。

     

  4. 将以下两个属性添加到列表中:

       

    • -Dhttp.proxyHost=my.host

       

    • -Dhttp.proxyPort=my.port.number

    确保为这些属性设置的值适用于您的环境。

 

  • 在 IDE 中测试。如果在 IDE 测试应用程序而没有正确设置代理主机和端口,则此错误将显示在 IDE 中:

    要解决此问题,则执行以下操作:

       

    1. 选择 Tools > Options。

       

    2. 在 Options 窗口中,设置代理主机和端口号。
  • 0
    相关文章