微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向 Apache Tomcat 服务器添加一个 Java 类作为 Web 服务以从我 PC 上运行的另一个 Java 客户端类调用它

如何解决向 Apache Tomcat 服务器添加一个 Java 类作为 Web 服务以从我 PC 上运行的另一个 Java 客户端类调用它

我正在学习网络服务,我已经使用网络服务完成了一个简单的计算器应用程序,其中计算器及其执行操作的功能在“服务器”类中,接口(客户端)在另一个项目中.

服务器如下:

package webservice.server;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class Calculator {

public static void main(String[] args) {
    System.out.println("Server started at: http://localhost:12345/calc");
    Endpoint.publish("http://localhost:12345/calc",new Calculator());
}

public int compute(int x,int y,String operation) {
    return Calculator.calculate(x,y,operation);
}

public static int calculate(int x,String operation) {
    int result;
    String op;

    if ("ADD".equals(operation)) {
        result = x + y;
        op = "+";
    } else if ("SUB".equals(operation)) {
        result = x - y;
        op = "-";
    } else if ("MULT".equals(operation)) {
        result = x * y;
        op = "*";
    } else if ("DIV".equals(operation)) {
        result = x / y;
        op = "/";
    } else {
        // defaults to SUB
        result = x - y;
        op = "-";
    }

    log(x,result,op);

    return result;
}

private static void log(int x,int result,String op) {
    System.out.format("%d %s %d = %d%n",x,op,result);
}

}

在此服务器运行的情况下,如果我使用的是 IntelliJ IDEA IDE,我会在终端中运行以下命令:

wsimport -keep -p webservice.client http://localhost:12345/calc?wsdl

,创建客户端文件自动创建以下结构(我使用的是 IntelliJ 社区):

Client structure

目前,我可以启动我的 Calculator 类(我的服务器),然后我可以启动我的 CalculatorClient 类来执行我需要的计算。这是这个客户端的代码

package webservice.client;

public class CalculatorClient {

/**
 * Starts the web service client.
 */
public static void main(String[] args) {
    CalculatorService client = new CalculatorService();
    Calculator calculatorService = client.getCalculatorPort();
    int result = calculatorService.compute(10,20,"ADD");
    System.out.println("Returned value from server:  " + result);
}

}

结果如下:

Returned value from server:  30

Process finished with exit code 0

如您所见,计算器客户端通过创建的webservice向服务器发送两个值和操作,服务器将值返回给客户端,以便进行打印。

这运行完美,所以现在我的问题是:如何将此计算器服务器类添加到 Apache Tomcat 服务?那可能吗?我已经将 Apache Tomcat 下载并安装到我的 PC 上,以了解如何创建这样的 Web 服务,只是可以从另一个客户端程序访问的功能,就像 CalculatorClient 一样,这些功能将在本地 PC 上运行。

在我的 Apache Tomcat 服务器中,我可以看到以下内容

Apache Tomcat server applications list

如何在此处添加我的 Calculator 类(服务器)并根据需要启动或停止它,以便我的 CalculatorClient 可以访问它?那可能吗?如果没有,我如何像我的 Calculator 类一样用 Java 创建服务并将它们添加到这个 Apache Tomcat 服务器?

感谢您的任何帮助或建议!

丹尼尔。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?