1

我目前正在尝试实施我的大学给出的网络服务任务。

我的任务是..,

考虑一个例子,我们有两个网络服务——一个航空公司服务和一个旅行社,而旅行社正在搜索一家航空公司。使用 Web 服务和数据库实现此场景。

为此,作为新手,我尝试按照此链接中给出的步骤进行操作。 我打开了 Netbeans beta 2,并完全按照该链接中给出的步骤进行操作。

但是在尝试这些步骤时 Deploying and Testing the Web Service,我尝试运行CalculatorWSApplication,我注意到它javax.ejb.Stateless是未定义的。

在此处输入图像描述

我有三个问题,

  1. 我对 JSP、HTML、WEBSERVICE 有基本的了解。请给我一些任务的基本想法/基本模式,以便我可以继续下一步和实施。
  2. 我怎样才能摆脱丢失的ejb文件。
  3. 通常 .java 文件将引用存在的库jre以及为什么在此程序中 CalculatorWS.java 在此路径中引用C:\users\MuthuGanapathy\.netbeans\7.0beta2\var\cache\index\s3\java\14\gensrc\javax\
4

1 回答 1

1

让我试着回答你的问题:

首先:创建 WebServices并不需要JSPHTML知识。如果您对其他知识感兴趣,不妨看看SOAPWSDLXML(SOAP 和 WSDL 文件所基于的)等主题。您可以在w3schools找到很好的信息。

正如您在作业要求中所说,您将把您的服务与数据库结合起来,因此您将不得不面对 WebServices 无法发送所有类型的数据这一事实。例如,如果您打算使用某种 JPA,您将无法通过 WebService 在客户端和服务器之间轻松发送实体(尽管可能)。

因此,我的方法是在客户端和服务器之间发送简单的数据类型,并在服务器端构建我的复杂对象。

这将迫使我编写至少 3 个类(一个用于每个 Web 服务,一个用于与数据库通信)。

航空公司 WS:

@WebService
public class Airline {

  @WebMethod
  public String stuffToDo {
    // do your stuff
    persistOrSelect(complexObject);
    return "success"; 
  }

  private boolean persistOrSelectData(Object complex) {
    // Database stuff here
    DBdao.doStuff(complex);
    return true;
  }
}

旅行社 WS:

// same structure as shown above

数据库类:

public class DBdao {

  public static doStuff(Object complex) {
    // get DB connection and INSERT, SELECT, UPDATE
  }
}

在这种情况下,您甚至不必使用javax.ejb包外的类,但我知道这可能是必要的 :)。
我并没有真正使用Netbeans,因此我只能推测。我认为您的问题2.)3.)相互关联。

javax.*软件包通常位于您的 JDK 中,并且应该在您的 IDE 中server library/target runtime的 using 中指定。

  • 您是否已将 分配server library给您的项目?
  • 您是否尝试将 Netbeans 安装指向您的 JDK 路径,如此此处所示?
  • 您的项目也可能没有对Java System library.

最后但并非最不重要的:

有几种方法可以测试您的 Web 服务:

  1. 您使用 Netbeans,因此我假设您将项目部署在 Glassfish 服务器上。
    部署后,您可以在管理 gui 中导航到您的项目,然后单击指向查看端点的链接。在下一个窗口中,您可以点击指向生成的链接WSDL或指向tester
  2. 您可以按照提供的教程编写自己的客户端,或者,对于更通用的方法,您可以使用这个.
  3. 使用soapUI进行测试(它可以作为独立应用程序或 IDE 插件使用)

我希望这会有所帮助,玩得开心!

于 2012-03-22T16:18:47.337 回答