You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@mina.apache.org by en...@nokia.com on 2013/11/27 10:31:31 UTC
Mina 2.0.7 using http module and ssl filter
Hi,
I am having some server application which uses Http protocol over SSL to communicate with the clients. So far we had developed our own codecs to handle the HTTP protocol, but as I wanted to week it as simple as possible, I decided to refactor it to use the http module
acceptor.getFilterChain().addLast( "sslFilter", sslFilter );
acceptor.getFilterChain().addLast( "protocolFilter", new ProtocolCodecFilter( HttpServerEncoder.class, HttpServerDecoder.class));
After struggling for a while I manage to make the server work for the simpler case: client request - server answers.
// --------- CLIENT REQUEST ---------
@Override
public void messageReceived( IoSession session, Object message) throws Exception {
String sessionInfo = LogUtils.getSessionInfo(session);
if (message instanceof HttpRequest) {
HttpRequest incomingRequest = (HttpRequest) message;
/* ... */
}
else if (message instanceof IoBuffer) {
IoBuffer buf = (IoBuffer)message;
CharBuffer charBuffer = decoder.decode(buf.buf());
String body = charBuffer.toString();
buf.free();
}
else if (message instanceof HttpEndOfContent) {
/* processRequest */
}
}
// --------------- SERVER RESPONSE -------------
public void sendResponse(IoSession session, HttpStatus responseCode, String response, boolean isJson, boolean closeSession) throws CharacterCodingException {
String dt = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz").format(new Date());
Map<String, String> headers = new HashMap<String, String>();
headers.put("Cache-Control", "private");
headers.put("Date", dt);
headers.put("Last-Modified", dt);
if (isJson){
headers.put("Content-Type", "application/json; charset=utf-8");
} else {
headers.put("Content-Type", "application/xml; charset=utf-8");
}
if (closeSession) {
headers.put("Connection", "Close");
}
if (StringUtils.isEmpty(response)){
headers.put("Content-Length", "0");
session.write(new DefaultHttpResponse(HttpVersion.HTTP_1_1, responseCode, headers));
} else {
byte[] responseBytes = response.getBytes(utf8);
headers.put("Content-Length", String.valueOf(responseBytes.length));
session.write(new DefaultHttpResponse(HttpVersion.HTTP_1_1, responseCode, headers));
IoBuffer buf = IoBuffer.allocate(responseBytes.length);
buf.put(responseBytes);
buf.flip();
session.write(buf);
buf.free();
}
session.write(new HttpEndOfContent());
if (closeSession){
session.close(false);
}
}
After sending the response, we don't want to close the session because we need to wait for the client to make a second request. The problem that I have step into is that, when we make this second request, we get this exception:
2013-11-27 10:04:16,886 ERROR [NioProcessor-2] (DabServerHandler.java:71) - [127.0.0.1] id(1) - EXCEPTION : java.lang.IllegalArgumentException: No enum constant org.apache.mina.http.api.HttpMethod.ET (Hexdump: 45 54 20 2F 64 61 62 70 2F 31 2E 30 2F 61 64 64 3F 66 6F 72 6D 61 74 3D 6A 73 6F 6E 26 61 6C 67 6F 72 69 74 68 6D 3D 52 53 41 2D 53 48 41 32 35 36 26 61 70 70 69 64 3D 63 6F 6D 2E 6E 6F 6B 69 61 2E 64 61 62 63 2E 6A 6D 65 2E 73 34 30 2D 31 26 63 6E 6F 6E 63 65 3D 62 6E 52 6B 4D 44 46 78 64 33 45 33 56 6B 56 4E 5A 7A 52 72 59 6C 51 33 4F 58 4A 30 26 69 64 3D 77 2D 31 77 76 36 70 38 63 6E 31 6E 37 70 35 34 68 78 74 67 6E 33 72 6A 65 36 71 34 26 6E 6F 6E 63 65 3D 4D 76 43 34 52 6C 7A 45 56 63 26 72 65 61 6C 6D 3D 77 69 70 73 6C 2E 63 6F 6D 26 72 65 66 3D 42 51 49 4B 36 36 51 78 36 4D 5A 6C 56 54 79 75 58 50 71 55 75 65 54 78 78 69 73 25 32 35 33 44 26 73 69 67 6E 61 74 75 72 65 3D 6E 34 74 5A 4C 67 79 70 68 36 25 32 35 32 42 7A 30 32 61 64 74 47 78 64 4C 45 25 32 35 32 46 6F 35 56 33 57 7A 58 46 44 44 37 38 57 65 79 52 61 33 25 32 35 32 46 6D 30 56 35 47 25 32 35 32 42 46 57 53 35 38 64 4A 45 6A 35 6D 55 66 68 47 47 58 39 78 78 6C 66 45 54 64 56 42 68 56 6D 25 32 35 32 46 78 6A 53 50 46 48 73 61 48 68 61 39 33 48 56 54 50 76 68 32 51 47 33 36 58 75 69 35 55 69 76 5A 52 58 55 75 67 62 4B 25 32 35 32 42 33 63 50 46 41 6E 53 69 4C 57 6E 61 70 6A 45 55 52 6A 63 6B 50 30 66 61 45 63 63 45 71 30 58 73 44 32 4A 66 34 73 31 47 6E 4B 37 54 35 77 63 6A 61 38 75 59 25 32 35 33 44 26 74 69 6D 65 73 74 61 6D 70 3D 31 33 38 35 35 33 39 34 34 39 26 76 65 72 73 69 6F 6E 3D 31 2E 35 2E 37 20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73 74 3A 20 6C 6F 63 61 6C 68 6F 73 74 3A 38 34 34 33 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 41 70 61 63 68 65 2D 48 74 74 70 43 6C 69 65 6E 74 2F 34 2E 33 20 28 6A 61 76 61 20 31 2E 35 29 0D 0A 0D 0A)
org.apache.mina.filter.codec.ProtocolDecoderException: java.lang.IllegalArgumentException: No enum constant org.apache.mina.http.api.HttpMethod.ET (Hexdump: 45 54 20 2F 64 61 62 70 2F 31 2E 30 2F 61 64 64 3F 66 6F 72 6D 61 74 3D 6A 73 6F 6E 26 61 6C 67 6F 72 69 74 68 6D 3D 52 53 41 2D 53 48 41 32 35 36 26 61 70 70 69 64 3D 63 6F 6D 2E 6E 6F 6B 69 61 2E 64 61 62 63 2E 6A 6D 65 2E 73 34 30 2D 31 26 63 6E 6F 6E 63 65 3D 62 6E 52 6B 4D 44 46 78 64 33 45 33 56 6B 56 4E 5A 7A 52 72 59 6C 51 33 4F 58 4A 30 26 69 64 3D 77 2D 31 77 76 36 70 38 63 6E 31 6E 37 70 35 34 68 78 74 67 6E 33 72 6A 65 36 71 34 26 6E 6F 6E 63 65 3D 4D 76 43 34 52 6C 7A 45 56 63 26 72 65 61 6C 6D 3D 77 69 70 73 6C 2E 63 6F 6D 26 72 65 66 3D 42 51 49 4B 36 36 51 78 36 4D 5A 6C 56 54 79 75 58 50 71 55 75 65 54 78 78 69 73 25 32 35 33 44 26 73 69 67 6E 61 74 75 72 65 3D 6E 34 74 5A 4C 67 79 70 68 36 25 32 35 32 42 7A 30 32 61 64 74 47 78 64 4C 45 25 32 35 32 46 6F 35 56 33 57 7A 58 46 44 44 37 38 57 65 79 52 61 33 25 32 35 32 46 6D 30 56 35 47 25 32 35 32 42 46 57 53 35 38 64 4A 45 6A 35 6D 55 66 68 47 47 58 39 78 78 6C 66 45 54 64 56 42 68 56 6D 25 32 35 32 46 78 6A 53 50 46 48 73 61 48 68 61 39 33 48 56 54 50 76 68 32 51 47 33 36 58 75 69 35 55 69 76 5A 52 58 55 75 67 62 4B 25 32 35 32 42 33 63 50 46 41 6E 53 69 4C 57 6E 61 70 6A 45 55 52 6A 63 6B 50 30 66 61 45 63 63 45 71 30 58 73 44 32 4A 66 34 73 31 47 6E 4B 37 54 35 77 63 6A 61 38 75 59 25 32 35 33 44 26 74 69 6D 65 73 74 61 6D 70 3D 31 33 38 35 35 33 39 34 34 39 26 76 65 72 73 69 6F 6E 3D 31 2E 35 2E 37 20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73 74 3A 20 6C 6F 63 61 6C 68 6F 73 74 3A 38 34 34 33 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 41 70 61 63 68 65 2D 48 74 74 70 43 6C 69 65 6E 74 2F 34 2E 33 20 28 6A 61 76 61 20 31 2E 35 29 0D 0A 0D 0A)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:242)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
at org.apache.mina.filter.ssl.SslHandler.flushScheduledEvents(SslHandler.java:322)
at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:497)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
at org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:208)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:109)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:410)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:710)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.mina.http.api.HttpMethod.ET
at java.lang.Enum.valueOf(Enum.java:236)
at org.apache.mina.http.api.HttpMethod.valueOf(HttpMethod.java:27)
at org.apache.mina.http.HttpServerDecoder.parseHttpRequestHead(HttpServerDecoder.java:184)
at org.apache.mina.http.HttpServerDecoder.decode(HttpServerDecoder.java:91)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:232)
... 24 more
I don't think it is a problem of the client because we are using org.apache.http.client.methods.HttpGet;
HttpGet httpget = new HttpGet(address);
HttpResponse response = httpclient.execute(httpget);
Any idea what is going on?
Thanks,
-Enrique
Re: Mina 2.0.7 using http module and ssl filter
Posted by Arnaud bourree <ar...@gmail.com>.
Hello,
mina-http is not provided as jar in 2.0.7 but you can find it in sources.
It may be available for 2.0.8
Regards,
Arnaud.
2013/11/27 <en...@nokia.com>
> Hi,
>
> I am having some server application which uses Http protocol over SSL to
> communicate with the clients. So far we had developed our own codecs to
> handle the HTTP protocol, but as I wanted to week it as simple as possible,
> I decided to refactor it to use the http module
>
> acceptor.getFilterChain().addLast( "sslFilter", sslFilter );
> acceptor.getFilterChain().addLast( "protocolFilter", new
> ProtocolCodecFilter( HttpServerEncoder.class, HttpServerDecoder.class));
>
>
> After struggling for a while I manage to make the server work for the
> simpler case: client request - server answers.
>
> // --------- CLIENT REQUEST ---------
> @Override
> public void messageReceived( IoSession session, Object message) throws
> Exception {
> String sessionInfo = LogUtils.getSessionInfo(session);
>
> if (message instanceof HttpRequest) {
> HttpRequest incomingRequest = (HttpRequest) message;
> /* ... */
> }
> else if (message instanceof IoBuffer) {
> IoBuffer buf = (IoBuffer)message;
> CharBuffer charBuffer = decoder.decode(buf.buf());
> String body = charBuffer.toString();
> buf.free();
> }
> else if (message instanceof HttpEndOfContent) {
>
> /* processRequest */
> }
> }
>
>
> // --------------- SERVER RESPONSE -------------
> public void sendResponse(IoSession session, HttpStatus
> responseCode, String response, boolean isJson, boolean closeSession) throws
> CharacterCodingException {
> String dt = new SimpleDateFormat("EEE, dd MMM yyyy
> HH:mm:ss zzz").format(new Date());
>
> Map<String, String> headers = new HashMap<String,
> String>();
> headers.put("Cache-Control", "private");
> headers.put("Date", dt);
> headers.put("Last-Modified", dt);
> if (isJson){
> headers.put("Content-Type", "application/json;
> charset=utf-8");
> } else {
> headers.put("Content-Type", "application/xml;
> charset=utf-8");
> }
> if (closeSession) {
> headers.put("Connection", "Close");
> }
> if (StringUtils.isEmpty(response)){
> headers.put("Content-Length", "0");
> session.write(new
> DefaultHttpResponse(HttpVersion.HTTP_1_1, responseCode, headers));
> } else {
> byte[] responseBytes = response.getBytes(utf8);
> headers.put("Content-Length",
> String.valueOf(responseBytes.length));
> session.write(new
> DefaultHttpResponse(HttpVersion.HTTP_1_1, responseCode, headers));
>
> IoBuffer buf =
> IoBuffer.allocate(responseBytes.length);
> buf.put(responseBytes);
> buf.flip();
> session.write(buf);
> buf.free();
> }
> session.write(new HttpEndOfContent());
>
> if (closeSession){
> session.close(false);
> }
> }
>
>
> After sending the response, we don't want to close the session because we
> need to wait for the client to make a second request. The problem that I
> have step into is that, when we make this second request, we get this
> exception:
>
> 2013-11-27 10:04:16,886 ERROR [NioProcessor-2] (DabServerHandler.java:71)
> - [127.0.0.1] id(1) - EXCEPTION : java.lang.IllegalArgumentException: No
> enum constant org.apache.mina.http.api.HttpMethod.ET (Hexdump: 45 54 20
> 2F 64 61 62 70 2F 31 2E 30 2F 61 64 64 3F 66 6F 72 6D 61 74 3D 6A 73 6F 6E
> 26 61 6C 67 6F 72 69 74 68 6D 3D 52 53 41 2D 53 48 41 32 35 36 26 61 70 70
> 69 64 3D 63 6F 6D 2E 6E 6F 6B 69 61 2E 64 61 62 63 2E 6A 6D 65 2E 73 34 30
> 2D 31 26 63 6E 6F 6E 63 65 3D 62 6E 52 6B 4D 44 46 78 64 33 45 33 56 6B 56
> 4E 5A 7A 52 72 59 6C 51 33 4F 58 4A 30 26 69 64 3D 77 2D 31 77 76 36 70 38
> 63 6E 31 6E 37 70 35 34 68 78 74 67 6E 33 72 6A 65 36 71 34 26 6E 6F 6E 63
> 65 3D 4D 76 43 34 52 6C 7A 45 56 63 26 72 65 61 6C 6D 3D 77 69 70 73 6C 2E
> 63 6F 6D 26 72 65 66 3D 42 51 49 4B 36 36 51 78 36 4D 5A 6C 56 54 79 75 58
> 50 71 55 75 65 54 78 78 69 73 25 32 35 33 44 26 73 69 67 6E 61 74 75 72 65
> 3D 6E 34 74 5A 4C 67 79 70 68 36 25 32 35 32 42 7A 30 32 61 64 74 47 78 64
> 4C 45 25 32 35 32 46 6F 35 56 33 57 7A 58 46 44 44 37 38 57 65 79 52 61 33
> 25 32 35 32 46 6D 30 56 35 47 25 32 35 32 42 46 57 53 35 38 64 4A 45 6A 35
> 6D 55 66 68 47 47 58 39 78 78 6C 66 45 54 64 56 42 68 56 6D 25 32 35 32 46
> 78 6A 53 50 46 48 73 61 48 68 61 39 33 48 56 54 50 76 68 32 51 47 33 36 58
> 75 69 35 55 69 76 5A 52 58 55 75 67 62 4B 25 32 35 32 42 33 63 50 46 41 6E
> 53 69 4C 57 6E 61 70 6A 45 55 52 6A 63 6B 50 30 66 61 45 63 63 45 71 30 58
> 73 44 32 4A 66 34 73 31 47 6E 4B 37 54 35 77 63 6A 61 38 75 59 25 32 35 33
> 44 26 74 69 6D 65 73 74 61 6D 70 3D 31 33 38 35 35 33 39 34 34 39 26 76 65
> 72 73 69 6F 6E 3D 31 2E 35 2E 37 20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73
> 74 3A 20 6C 6F 63 61 6C 68 6F 73 74 3A 38 34 34 33 0D 0A 43 6F 6E 6E 65 63
> 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 55 73 65 72 2D 41 67
> 65 6E 74 3A 20 41 70 61 63 68 65 2D 48 74 74 70 43 6C 69 65 6E 74 2F 34 2E
> 33 20 28 6A 61 76 61 20 31 2E 35 29 0D 0A 0D 0A)
> org.apache.mina.filter.codec.ProtocolDecoderException:
> java.lang.IllegalArgumentException: No enum constant
> org.apache.mina.http.api.HttpMethod.ET (Hexdump: 45 54 20 2F 64 61 62 70
> 2F 31 2E 30 2F 61 64 64 3F 66 6F 72 6D 61 74 3D 6A 73 6F 6E 26 61 6C 67 6F
> 72 69 74 68 6D 3D 52 53 41 2D 53 48 41 32 35 36 26 61 70 70 69 64 3D 63 6F
> 6D 2E 6E 6F 6B 69 61 2E 64 61 62 63 2E 6A 6D 65 2E 73 34 30 2D 31 26 63 6E
> 6F 6E 63 65 3D 62 6E 52 6B 4D 44 46 78 64 33 45 33 56 6B 56 4E 5A 7A 52 72
> 59 6C 51 33 4F 58 4A 30 26 69 64 3D 77 2D 31 77 76 36 70 38 63 6E 31 6E 37
> 70 35 34 68 78 74 67 6E 33 72 6A 65 36 71 34 26 6E 6F 6E 63 65 3D 4D 76 43
> 34 52 6C 7A 45 56 63 26 72 65 61 6C 6D 3D 77 69 70 73 6C 2E 63 6F 6D 26 72
> 65 66 3D 42 51 49 4B 36 36 51 78 36 4D 5A 6C 56 54 79 75 58 50 71 55 75 65
> 54 78 78 69 73 25 32 35 33 44 26 73 69 67 6E 61 74 75 72 65 3D 6E 34 74 5A
> 4C 67 79 70 68 36 25 32 35 32 42 7A 30 32 61 64 74 47 78 64 4C 45 25 32 35
> 32 46 6F 35 56 33 57 7A 58 46 44 44 37 38 57 65 79 52 61 33 25 32 35 32 46
> 6D 30 56 35 47 25 32 35 32 42 46 57 53 35 38 64 4A 45 6A 35 6D 55 66 68 47
> 47 58 39 78 78 6C 66 45 54 64 56 42 68 56 6D 25 32 35 32 46 78 6A 53 50 46
> 48 73 61 48 68 61 39 33 48 56 54 50 76 68 32 51 47 33 36 58 75 69 35 55 69
> 76 5A 52 58 55 75 67 62 4B 25 32 35 32 42 33 63 50 46 41 6E 53 69 4C 57 6E
> 61 70 6A 45 55 52 6A 63 6B 50 30 66 61 45 63 63 45 71 30 58 73 44 32 4A 66
> 34 73 31 47 6E 4B 37 54 35 77 63 6A 61 38 75 59 25 32 35 33 44 26 74 69 6D
> 65 73 74 61 6D 70 3D 31 33 38 35 35 33 39 34 34 39 26 76 65 72 73 69 6F 6E
> 3D 31 2E 35 2E 37 20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73 74 3A 20 6C 6F
> 63 61 6C 68 6F 73 74 3A 38 34 34 33 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A
> 20 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20
> 41 70 61 63 68 65 2D 48 74 74 70 43 6C 69 65 6E 74 2F 34 2E 33 20 28 6A 61
> 76 61 20 31 2E 35 29 0D 0A 0D 0A)
> at
> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:242)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
> at
> org.apache.mina.filter.ssl.SslHandler.flushScheduledEvents(SslHandler.java:322)
> at
> org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:497)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
> at
> org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:208)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765)
> at
> org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:109)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:410)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:710)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124)
> at
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: java.lang.IllegalArgumentException: No enum constant
> org.apache.mina.http.api.HttpMethod.ET
> at java.lang.Enum.valueOf(Enum.java:236)
> at org.apache.mina.http.api.HttpMethod.valueOf(HttpMethod.java:27)
> at
> org.apache.mina.http.HttpServerDecoder.parseHttpRequestHead(HttpServerDecoder.java:184)
> at
> org.apache.mina.http.HttpServerDecoder.decode(HttpServerDecoder.java:91)
> at
> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:232)
> ... 24 more
>
>
>
> I don't think it is a problem of the client because we are using
> org.apache.http.client.methods.HttpGet;
>
> HttpGet httpget = new HttpGet(address);
> HttpResponse response = httpclient.execute(httpget);
>
>
> Any idea what is going on?
>
> Thanks,
> -Enrique