如何解决向 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 社区):
目前,我可以启动我的 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 服务器中,我可以看到以下内容:
如何在此处添加我的 Calculator 类(服务器)并根据需要启动或停止它,以便我的 CalculatorClient 可以访问它?那可能吗?如果没有,我如何像我的 Calculator 类一样用 Java 创建服务并将它们添加到这个 Apache Tomcat 服务器?
感谢您的任何帮助或建议!
丹尼尔。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。