Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们可以在webservice方法中调用servlet吗_Java_Web Services_Web Applications_Jakarta Ee - Fatal编程技术网

Java 我们可以在webservice方法中调用servlet吗

Java 我们可以在webservice方法中调用servlet吗,java,web-services,web-applications,jakarta-ee,Java,Web Services,Web Applications,Jakarta Ee,我有一个webservice方法 @WebMethod public void getCapturedImages(String image) System.out.println(" image " + image); } 我的servlet类是: public class GetWebApplicationPathServlet extends HttpServlet { private static final long serialVersionUID = 1L; pr

我有一个webservice方法

  @WebMethod
 public void getCapturedImages(String image)
 System.out.println(" image " + image);
 }
我的servlet类是:

   public class GetWebApplicationPathServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static ServletContext context;

public static ServletContext getContext() {
    return context;
}

public static void setContext(ServletContext context) {
    GetWebApplicationPathServlet.context = context;
}

/**
 * @see HttpServlet#HttpServlet()
 */
public GetWebApplicationPathServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
 *      response)
 */
protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

    System.out.println("doGet(HttpServletRequest");
    String path = getServletContext().getRealPath("");

    context = getServletContext();
    String path1 = context.getRealPath("/images");
    System.out.println("path1"+path1);

    /*
     * PrintWriter writer = response.getWriter();
     * writer.println("Application path: " + path);
     */
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
 *      response)
 */
protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
}

我们可以在webservice方法中调用我的servlet类。

您可能可以,但这是有问题的。您需要做的是创建一个方法,两者都可以调用该方法来执行所需的功能。

您可能可以,但这是有问题的。您需要做的是创建一个方法,两者都可以调用该方法来执行所需的功能。

为了调用该类,您必须创建该类的实例,自己构造HttpServletRequest对象,然后调用它。或者您可以从web服务向它发出Http请求


这两种解决方案都不推荐。您最好创建一个能够实现所需功能的类,并从两个位置调用它。

为了调用该类,您必须创建它的实例,自己构造HttpServletRequest对象,然后调用它。或者您可以从web服务向它发出Http请求


这两种解决方案都不推荐。您最好创建一个实现所需功能的类,从两个位置调用它。

您可以使用用于从直接HTTP请求调用servlet的路径发出包含:

@Resource
private WebServiceContext context;

private void invokeServlet() throws IOException, ServletException
{
    ServletContext servletContext = (ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
    HttpServletRequest request = (HttpServletRequest) context.getMessageContext().get(MessageContext.SERVLET_REQUEST);
    HttpServletResponse response = (HttpServletResponse) context.getMessageContext().get(MessageContext.SERVLET_RESPONSE);
    servletContext.getRequestDispatcher("/path/to/servlet").include(request, response);
}

另请参见:

您可以使用用于从直接HTTP请求调用servlet的路径发出包含:

@Resource
private WebServiceContext context;

private void invokeServlet() throws IOException, ServletException
{
    ServletContext servletContext = (ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
    HttpServletRequest request = (HttpServletRequest) context.getMessageContext().get(MessageContext.SERVLET_REQUEST);
    HttpServletResponse response = (HttpServletResponse) context.getMessageContext().get(MessageContext.SERVLET_RESPONSE);
    servletContext.getRequestDispatcher("/path/to/servlet").include(request, response);
}

另请参见:

My context返回空值。。请给出一个解决方案我使用eclipse和JboSS工具包创建了webservices。此外,通过使用WebServiceContext注释,上下文值为null。@jennifer根据中的注释,您应该尝试删除WEB-INF/lib中的common-annotations.jar,因为这会导致类加载器冲突。目前无法进一步调查。我的上下文返回空值。。请给出一个解决方案我使用eclipse和JboSS工具包创建了webservices。此外,通过使用WebServiceContext注释,上下文值为null。@jennifer根据中的注释,您应该尝试删除WEB-INF/lib中的common-annotations.jar,因为这会导致类加载器冲突。目前无法进一步调查。