如何从现有的Web应用程序创建Web服务?

时间:2013-04-24 07:03:04

标签: web-services servlets axis2

问候,我是java中的WebService的新手。我想将webService添加到现有的项目中,这个项目只是在Mvc2中构建并且在阅读了很多文章后感到困惑,有人说,使用saaj创建服务,其他人说使用任何外部库像Axis2一样创建webservice或者说使用注释并创建xml用于映射。

   public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
    String Id = request.getParameter("Id").trim();
    String TD = request.getParameter("TD").trim();
    String Amount = request.getParameter("Amount").trim();
    String Bank = request.getParameter("Bank").trim();
    String NBank = request.getParameter("NBank").trim();
    ApplicationStatus app = new ApplicationStatus(Id, TD, Amount, Bank,NBank);
    ApplicationStatusDA operation= new ApplicationStatusDA();
    int result =operation.insert(app);
    if(result==1)
     {
       System.out.Println("Saved");
     }
   }

当我尝试使用Axis2时,它会显示错误

  

服务类" controller.ApplicationStatusCTR"不符合JAX-RPC 1.1规范的一个或多个要求,可能无法正确部署或运行​​。     方法" doGet"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.http.HttpServletRequest"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" doGet"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.http.HttpServletResponse"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" doPost"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.http.HttpServletRequest"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" doPost"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.http.HttpServletResponse"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法"服务"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.ServletRequest"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法"服务"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.ServletResponse"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" getInitParameterNames"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" java.util.Enumeration"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" getServletConfig"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.ServletConfig"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" getServletContext"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.ServletContext"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" init"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.ServletConfig"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" log"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" java.lang.Throwable"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法"服务"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.ServletRequest"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法"服务"在服务类" controller.ApplicationStatusCTR"使用JAX-RPC规范不支持的数据类型" javax.servlet.ServletResponse"。该类型的实例可能无法正确序列化或反序列化。可能导致数据丢失或Web服务完全失败。     方法" init"在服务类" controller.ApplicationStatusCTR"超载了。 JAX-RPC 1.1规范的第5.5.5章允许重载方法,但是,一些符合JAX-RPC 1.1的工具可能不允许重载方法,或者可能生成带有重载操作的WSDL,这与WS-I Basic Profile的规则R2304相反。     方法" log"在服务类" controller.ApplicationStatusCTR"超载了。 JAX-RPC 1.1规范的第5.5.5章允许重载方法,但是,一些符合JAX-RPC 1.1的工具可能不允许重载方法,或者可能生成带有重载操作的WSDL,这与WS-I Basic Profile的规则R2304相反

现在请指导我创建Web服务的方法。

1 个答案:

答案 0 :(得分:0)

错误告诉您不支持Object的类型。请参阅http://docs.oracle.com/javaee/1.3/tutorial/doc/JAXRPC2.html(这只是一个示例,您应该看到适用于您正在使用的JAX-RPC版本的文档)