JMeterのHTTPプロキシで記録したいアプレットとサーブレットの通信があります。アプレットがいくつかのシリアル化されたJavaオブジェクト(組み込み型)を含むHTTP POSTメッセージを送信するまで、これはGETメッセージで機能します。その後、アプレットで次のエラーが発生します。
代替テキストhttp://img339.imageshack.us/img339/9238/appletservletjmeterhttp.png
OK、キューのどこかにJVMバージョンの競合があります。しかしここで?
通信は、JMeterがなくても正常に実行されます。つまり、アプレット->Tomcat->サーブレットです。すべて私のローカルマシン上にあります。
ただし、JMeterでは機能しません:アプレット->JMeterプロキシ->Tomcat->サーブレット。また、すべて私のマシン上にあります。
JMeterがPOSTメッセージの内容を変更しているかのようです...
Apacheプロキシでもテストしましたが、正常に動作しました。
さらに面白いのは、Javaのバージョンが1つ、JDKが1つ、JREが1つしかないことです。両方1.6.0_07..。
うさぎの穴を深く掘り始める前に聞いてみようと思いました;-)
Tomcatに直接送信されるPOSTデータの16進ダンプは次のとおりです。
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 {
2番目のダンプに多くの「3f」があります...したがって、これは確かにある種のエンコーディングの問題です。コンテンツタイプがヘッダーに正しく設定されている:
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