gpt4 book ai didi

web-services - 将数据保存在 Axis 对象中

转载 作者:行者123 更新时间:2023-11-28 22:28:16 24 4
gpt4 key购买 nike

如果这是一个愚蠢的问题,请原谅我,不幸的是我有一项任务到期了!我在 tomcat 下运行 apache axis,需要部署一个简单的 web 服务类,见下文。

我在/tomcat/webapps/axis/文件夹中将下面的计数器文件安装为“MyCounter.jws”。 Tomcat 找到它并制作一个相应的 MyCounter.xml。我在 XML 文件上使用 WSDL2Java,客户端调用似乎有效,但未保存内部状态:

每次我从客户端调用 MyCounter.call 时,返回值总是 1。似乎总是在方法调用之前调用构造函数。我怎样才能使 mycounter 整数在请求中保持不变?

public class MyCounter
{
int mycounter;

public MyCounter()
{
mycounter = 0;
}

public int call()
{
mycounter++;
return mycounter;
}
}

最佳答案

我认为坚持可能是个错误的词,我想你的意思是每次调用服务时都不会实例化 Java 类。

参见:https://axis.apache.org/axis/java/user-guide.html#Scoped_Services

因此您需要更改服务定义才能实现此目的。

我认为您无法使用 JWS 文件配置 session 范围。正如文档所说: https://axis.apache.org/axis/java/user-guide.html#JWS_Java_Web_Service_Files_-_Instant_Deployment

引用:

Important: JWS web services are intended for simple web services. You cannot use packages in the pages, and as the code is compiled at run time you can not find out about errors until after deployment. Production quality web services should use Java classes with custom deployment.

因此,如果您想使用此类功能,您应该考虑使用 Axis 提供的其他一些方式来设置 Web 服务。此外,我强烈建议使用 Axis2 而不是 Axis1: http://axis.apache.org/axis2/java/core/

Axis1 的 WSDD 文件设置可能非常复杂。除了 Axis1 之外,不再积极开发/维护。

关于web-services - 将数据保存在 Axis 对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com