1、本地开发测试的时候都是用tomcat6 线网部署的使用weblogic10.3
2、本地测试的时候没有显示调用connect() 方法,测试一切正常
POST 消息体中的请求数据均携带,对接的接口也获取到数据
而到线网的时候(通过抓包显示)
POST 消息体中的请求数据为空,对接的接口没有获取到数据
3、显示调用 HttpURLConnection 的 connect() 方法后重新在weblogic下部署后则正常。。。:funk:
以下为部分代码
HttpURLConnection urlConnection = null;
OutputStream out = null;
try
{
URL url = new URL(urlString);
urlConnection = (HttpURLConnection) url.openConnection();
// 设置超时时间20秒
urlConnection.setConnectTimeout(Integer.valueOf(CONNECT_TIMEOUT));
urlConnection.setRequestMethod(POST_METHOD);
urlConnection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded;charset=UTF-8");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setUseCaches(false);
urlConnection.connect(); //是否需要显示调用 tomcat 未调用 weblogic 需要调用
以上转自http://bbs.51cto.com/thread-1043179-1-1.html;
我在发布项目时候也发生了这样的事情,项目分为两个,一个作为前台,一个作为后台,之间依靠JSON通过发送Http协议完成数据的交互。于是,具体请求可以发送也可以接收但是无法找到请求参数,在本地的Tomcat服务器下没有这样的情况。具体原因:在tomcat下openConnection返回的是HttpsURLConnection,在weblogic下openConnection返回的是SOAPHttpsURLConnection,两者均为HttpURLConnection的子类,但是它们是有区别的,前者会在你getOutPutStream时候会隐含的调用connect()方法,而在后者没有,所以在weblogic下打开输出流之后不会将调用connect()方法,导致在weblogic下无法传递参数。个人见解,时间有限没有去真正查看底层代码。有错误望指正!
分享到:
相关推荐
GET方法用于从服务器获取资源,其参数通过URL作为查询字符串传递,且通常有限制,不适合传递敏感或大量数据。POST方法则用于向服务器发送数据,例如填充的Web表单数据,可以处理更多数据,且其内容不会显示在URL中,...
- **防止“POST拒绝服务”攻击**:通过限制POST请求的大小来增强安全性。 - **设置WebLogic服务器的HTTP隧道**:允许通过HTTP协议转发其他类型的流量。 - **配置HTTP隧道连接**:确保了客户端与服务器之间安全可靠的...
一旦找到对应的Servlet,容器会调用Servlet的`service()`方法,传递HttpServletRequest和HttpServletResponse对象作为参数。`service()`方法会根据HTTP请求方法(如GET或POST)选择调用`doGet()`或`doPost()`等适当...
* POST请求:用于将数据提交到服务器,参数通过请求体传递。 Web服务器和应用服务器 Web服务器和应用服务器是两种不同的服务器类型: * Web服务器:负责处理HTTP请求,例如Apache Tomcat、IIS等。 * 应用服务器:...
POST请求用于提交数据,数据在请求体中,无长度限制,通常不被缓存。 11. **CGI的缺陷**: CGI为每个请求创建一个新的进程,导致并发处理性能低下。 12. **Web容器**: 负责管理和运行Servlet的软件,例如Tomcat...
POST方法将数据放在请求正文中,不可见,长度无限制,适合传输大量或敏感数据。 8. **CGI的缺陷**: CGI每次请求都会创建新的进程,导致并发处理性能低下。 9. **Web容器**: Web容器(如Tomcat、Jboss、...
- POST:用于向服务器发送数据,数据在请求体中,对数据长度无严格限制,更安全。 9. **CGI的缺陷**: - 每个请求创建一个新进程,导致并发性能低下,资源消耗大。 10. **Web容器**: - 负责Servlet的管理和...
- **请求体**:通常用于POST请求,携带表单或其他数据。 4. **HTTP响应报文结构**: - **响应行**:包含协议版本、状态码和状态描述,状态码用于指示请求处理结果,如2xx表示成功,3xx表示重定向,4xx表示客户端...
- **POST** 方法用于向指定资源提交数据,请求的数据被包含在请求体中。POST 请求可能会改变服务器状态,并且通常不是幂等的。 ### 6. Session 和 Cookie - **Session**: 存储用户会话期间的信息,这些信息存储在...
但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理, EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 24、...
- **处理HTTP请求**:书中详细介绍了如何使用Servlet处理GET和POST请求,包括解决中文乱码问题。 - **生成Web投票统计图**:通过Servlet接收投票数据,并根据这些数据动态生成图表,从而实时反映投票结果的变化。 - ...
通常使用MVC(Model-View-Controller)架构,Servlet作为Controller接收请求,处理业务逻辑后,将结果传递给JSP生成视图。 **创建和访问Servlet**: 1. 创建Servlet类,实现`javax.servlet.http.HttpServlet`接口。...
- 请求实体可选,通常用于POST请求中,用来传递表单数据或文件等。 - **HTTP响应**:服务器接收到请求后,会返回一个HTTP响应给客户端。HTTP响应也分为三个部分:状态行、响应头、响应实体。 - 状态行包括协议...
- JSP动作组件如`<jsp:include>`、`<jsp:param>`、`<jsp:forward>`和`<jsp:useBean>`,用于动态地插入页面、传递参数、转发请求和实例化JavaBean。 以上是Java EE考试中的一些核心知识点,涵盖了Web服务器、端口...
16. Servlet:doGet/doPost对应HTTP请求的GET和POST方法,init初始化一次,service处理多次请求。servlet生命周期包括加载、初始化、服务、销毁。 17. EJB(Enterprise JavaBeans):提供企业级服务,如生命周期...