从另一个servlet调用servlet

Abd*_*liq 1 java servlets urlconnection

我有两个在不同的tomcat服务器上运行的servlet.

我尝试以下列方式从servlet2调用servlet1,并希望将一个对象写入输出流.

URL url=new URL("http://msyserver/abc/servlet1");
URLConnection con=url.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
OutputStream os=con.getOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(os);
oos.writeObject(pushEmailDTO);
oos.flush();
oos.close();
Run Code Online (Sandbox Code Playgroud)

问题是我无法打到servlet?我无法弄清楚我错过了什么.

Aar*_*lla 6

您必须先创建连接,url.connect()然后才能读取/发送数据.这是违反直觉的,因为名称openConnection()表明它已经存在,但文档说:

通常,创建与URL的连接是一个多步骤过程:

  1. openConnection()
  2. 处理影响与远程资源的连接的参数.
  3. 连接()
  4. 与资源互动; 查询标题字段和内容.

这就是为什么getExpiration()让它发挥作用:它需要connect()你.