我们有我们愿意与JMeter的HTTP代理记录一个applet-servlet的通信。 它的工作原理与GET消息,直到小程序发送一个HTTP POST消息,其中包括一些序列化的Java对象(内建类型),那么我们得到的小程序此错误:
替代文字http://img339.imageshack.us/img339/9238/appletservletjmeterhttp.png
OK,所以有一些JVM版本冲突的地方在队列中。 但是哪里?
通信运行正常,而不JMeter的,那就是:小程序 - > Tomcat的 - > Servlet的。 我所有的本地机器上。
但它不通过JMeter的工作:小程序 - > JMeter的代理 - > Tomcat的 - > Servlet的。 也都在我的机器上。
这是因为如果JMeter的是修改POST消息的内容...
我与Apache代理测试它为好,做工精细。
更有趣的事情是,我只有一个安装的Java版本,一个JDK和JRE一个。 无论1.6.0_07 ...
想我会开始挖兔子洞较深之前问;-)
这里是直接发送到Tomcat POST数据的十六进制转储:
00000348 ac ed 00 05 73 72 00 11 6a 61 76 61 2e 6c 61 6e ....sr.. java.lan
00000358 67 2e 49 6e 74 65 67 65 72 12 e2 a0 a4 f7 81 87 g.Intege r.......
00000368 38 02 00 01 49 00 05 76 61 6c 75 65 78 72 00 10 8...I..v aluexr..
00000378 6a 61 76 61 2e 6c 61 6e 67 2e 4e 75 6d 62 65 72 java.lan g.Number
00000388 86 ac 95 1d 0b 94 e0 8b 02 00 00 78 70 00 00 01 ........ ...xp...
00000398 7b {
这里是当通过JMeter的发送的数据:
00000128 ac ed 00 05 73 72 00 11 6a 61 76 61 2e 6c 61 6e ....sr.. java.lan
00000138 67 2e 49 6e 74 65 67 65 72 12 e2 a0 a4 f7 3f 3f g.Intege r.....??
00000148 38 02 00 01 49 00 05 76 61 6c 75 65 78 72 00 10 8...I..v aluexr..
00000158 6a 61 76 61 2e 6c 61 6e 67 2e 4e 75 6d 62 65 72 java.lan g.Number
00000168 3f ac 3f 1d 0b 3f e0 3f 02 00 00 78 70 00 00 01 ?.?..?.? ...xp...
00000178 7b {
很多的“3F” S在第二倾倒......所以这肯定是某种类型的编码问题。 内容类型设置正确的报头:
POST /ABCOrder/ABCServlet?cmd=getNetworkConnection HTTP/1.1
Connection: keep-alive
Content-Type: application/octet-stream
Host: 109.107.148.164:8443
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
User-Agent: Mozilla/4.0 (Windows Vista 6.0) Java/1.6.0_14
Content-Length: 81