如何更换AXIS'“你好,这是一个AXIS服务!”页?

时间:2011-02-03 14:42:20

标签: web-services axis

当我转到“http://192.168.0.149:8080/axis/services/MyService”时,我会看到这个页面

“你好,这是一个AXIS服务!

也许会有一个表格在这里调用服务......

我知道这意味着我的网络服务工作正常(事实上,我有一个java客户端,可以很好地调用它)。但昨天我被问到一个简单的问题,但我不知道答案,也找不到答案。 我们可以用实际的表格替换那个页面吗?是否有设置要添加到我们的web.xml文件中,或者可能还有其他内容?

我知道在我的服务器上部署了一个jar文件(没有/ axis目录),所以这可能会限制我的可能性......

1 个答案:

答案 0 :(得分:4)

找到解决方案。

您可以继承AxisServlet并重新定义reportServiceInfo()方法(即打印“Hi there,...”的方法)。

package com.abcd.ws;

import java.io.IOException;

@SuppressWarnings("serial")
public class MyAxisServlet extends org.apache.axis.transport.http.AxisServlet {
    protected void reportServiceInfo(
            javax.servlet.http.HttpServletResponse response,
            java.io.PrintWriter writer, org.apache.axis.handlers.soap.SOAPService service,
            java.lang.String serviceName) {
        //writer.write("We can print stuff here, or redirect :");
        // The leading slash means we are redirecting using an absolute path
        String redirectPage = response.encodeRedirectURL("/" + serviceName + ".jsp");
        try {
            response.sendRedirect(redirectPage);
        } catch (IOException e) {
            e.printStackTrace();
        }           
    }
}

然后,您需要在web.xml中更改AxisServlet上的映射以使用该类。