Web services 在axis对象中持久化数据

Web services 在axis对象中持久化数据,web-services,tomcat,soap,axis,Web Services,Tomcat,Soap,Axis,如果这是一个愚蠢的问题,请原谅,我很不幸有一个作业要交!我在tomcat下运行ApacheAxis,需要部署一个简单的web服务类,请参见下文 我在/tomcat/webapps/axis/文件夹中安装了下面的计数器文件“MyCounter.jws”。Tomcat找到它并生成相应的MyCounter.xml。我在XML文件上使用WSDL2Java,客户端调用似乎正常,但内部状态未保存: 每次从客户端调用MyCounter.call时,返回值总是1。似乎构造函数总是在方法调用之前被调用。如何使my

如果这是一个愚蠢的问题,请原谅,我很不幸有一个作业要交!我在tomcat下运行ApacheAxis,需要部署一个简单的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;
    }
}

我认为persisteng可能是一个错误的词,我认为您的意思是Java类不是每次调用服务时都被实例化

见:

因此,要实现这一点,您需要更改服务定义

我认为,使用JWS文件,您无法配置会话范围。正如文件所说:

引述:

重要提示:JWSWeb服务用于简单的web服务。你 无法在页中使用包,因为代码是在运行时编译的 直到部署之后您才能发现错误的时间。 生产质量的web服务应该使用带有自定义 部署

<> P>因此,如果您想使用这些特性,您应该考虑使用轴提供的其他方式来设置WebService。 另外,我强烈建议使用Axis2而不是Axis1:


Axis1的WSDD文件设置可能相当复杂。除了Axis1之外,没有更积极的开发/维护。

我认为持久化可能是一个错误的词,我认为您的意思是,Java类不是每次调用服务时都实例化的

见:

因此,要实现这一点,您需要更改服务定义

我认为,使用JWS文件,您无法配置会话范围。正如文件所说:

引述:

重要提示:JWSWeb服务用于简单的web服务。你 无法在页中使用包,因为代码是在运行时编译的 直到部署之后您才能发现错误的时间。 生产质量的web服务应该使用带有自定义 部署

<> P>因此,如果您想使用这些特性,您应该考虑使用轴提供的其他方式来设置WebService。 另外,我强烈建议使用Axis2而不是Axis1:

Axis1的WSDD文件设置可能相当复杂。除了Axis1之外,没有更积极的开发/维护