Re: Setting Nio connector in embedded tomcat7

2013-04-24 Thread Praveen Peddi
Hi,
Not sure if anyone has used NIO connector in embedded tomcat 7 but I am
out of luck so far. It seems so simple but I could not get it work. I am
wondering if this is a bug in embedded version of tomcat because it works
fine on standalone version. If this turns out to be a bug in tomcat 7
embedded, then I may have to think about moving to Jetty but it would be
ideal if I can figure this out with tomcat 7 itself.

I am pasting the complete method that create Tomcat instance with NIO
connector and starts it. If I don't have NIO connector all rest requests
works perfectly. But with this NIO connector I can't connect to server. I
looked at the tomcat unit tests and they don't seem to be doing anything
special for NIO connector. Any help would be appreciated.

public void init() throws LifecycleException, IOException {

log.debug(Initializing Tomcat);

final File base = createBaseDirectory();
log.info(Using base folder:  + base.getAbsolutePath());

final Tomcat tomcat = new Tomcat();
tomcat.setPort(TOMCAT_PORT);
tomcat.setBaseDir(base.getAbsolutePath());

Context context = tomcat.addContext(/perfmon, 
base.getAbsolutePath());
//handle rest requests
Wrapper cxfServlet = Tomcat.addServlet(context, CXFServlet, 
new
CXFServlet());

cxfServlet.addInitParameter(config-location,
classpath:perfmon-rest-server.xml);
cxfServlet.setLoadOnStartup(1);

context.addServletMapping(/rest/*, CXFServlet);

context.addApplicationListener(ContextLoaderListener.class.getName());
context.setLoader(new
WebappLoader(Thread.currentThread().getContextClassLoader()));

//atmosphere websocket support
Wrapper atmosphereServlet = Tomcat.addServlet(context,
AtmosphereServlet, new TomcatAtmosphereServlet());
atmosphereServlet
.addInitParameter(org.atmosphere.cpr.packages,
com.kiva.perfmon.prototype.pubsub.websocket);
atmosphereServlet.setLoadOnStartup(0);
context.addServletMapping(/pubsub/*, AtmosphereServlet);

context.addParameter(contextConfigLocation,
classpath:perfmon-context.xml);

// add nio connector for websocket support
Connector nioConnector = new
Connector(Http11NioProtocol.class.getName());
nioConnector.setPort(TOMCAT_PORT);
nioConnector.setProperty(address,
InetAddress.getByName(localhost).getHostAddress());
tomcat.setConnector(nioConnector);

tomcat.start();
tomcat.getServer().await();
}


Thanks in advance.
Praveen

On 4/23/13 Apr 23, 12:21 PM, Praveen Peddi ppe...@kivasystems.com
wrote:

Sorry I meant nio connector not bio connector. Outlook auto-correct is
not smart enough :)

On 4/23/13 Apr 23, 12:08 PM, Praveen Peddi ppe...@kivasystems.com
wrote:

I am not sure if this is the same issue I am having but apparently I am
also using atmosphere for web sockets and make it work in embedded
tomcat.

I looked at the tomcat unit tests for bio connector and the tests are not
doing anything special. They set the address to localhost. I tried the
below code similar to the unit tests but I still can't connect to tomcat
when I use this connector.

Connector nioConnector = new
Connector(Http11NioProtocol.class.getName());
  nioConnector.setPort(TOMCAT_PORT);
  nioConnector.setProperty(address,
InetAddress.getByName(localhost).getHostAddress());
tomcat.setConnector(nioConnector);


Unit test I saw is here:
http://svn.apache.org/repos/asf/tomcat/trunk/test/org/apache/catalina/non
b
l
ocking/TestNonBlockingAPI.java
And 
http://svn.apache.org/repos/asf/tomcat/trunk/test/org/apache/catalina/sta
r
t
up/TomcatBaseTest.java


Thanks
Praveen

On 4/23/13 Apr 23, 10:40 AM, Tribon Cheng tribon1...@gmail.com wrote:

Just like this issue:

http://atmosphere-framework.2306103.n4.nabble.com/WebSocket-not-working-
o
n
-Tomcat-7-With-NIO-connector-was-WebSocket-not-working-on-Tomcat-7-td465
2
3
51.html


On Tue, Apr 23, 2013 at 10:16 PM, Mark Thomas ma...@apache.org wrote:

 On 23/04/2013 15:11, Praveen Peddi wrote:
  Hi all, I am trying to set Nio connector in tomcat7 so I can use
  WebSocket support. I did the following (as simple as it can get) but
  it doesn't seem to work. When I do this I can't connect to the
  server. For example I have a GET REST request that should work but I
  get connection refused. Same with WebSocket request.
 
 
  Connector nioConnector = new Connector();
 
  nioConnector.setPort(TOMCAT_PORT);
 
  nioConnector.setProtocol(Http11NioProtocol.class.getName());
 
  tomcat.setConnector(nioConnector);
 
 
  If I comment out above lines and use default Http connector, REST
  requests work fine but WebSockets are not supported with default

Setting Nio connector in embedded tomcat7

2013-04-23 Thread Praveen Peddi
Hi all,
I am trying to set Nio connector in tomcat7 so I can use WebSocket support. I 
did the following (as simple as it can get) but it doesn't seem to work. When I 
do this I can't connect to the server. For example I have a GET REST request 
that should work but I get connection refused. Same with WebSocket request.


Connector nioConnector = new Connector();

nioConnector.setPort(TOMCAT_PORT);

nioConnector.setProtocol(Http11NioProtocol.class.getName());

tomcat.setConnector(nioConnector);


If I comment out above lines and use default Http connector, REST requests work 
fine but WebSockets are not supported with default http connector. So I am 
wondering if anyone has enabled bio connector in embedded tomcat before. I am 
using embedded tomcat 7.0.34.


Thanks in advance.

Praveen


Re: Setting Nio connector in embedded tomcat7

2013-04-23 Thread Praveen Peddi
I am not sure if this is the same issue I am having but apparently I am
also using atmosphere for web sockets and make it work in embedded tomcat.

I looked at the tomcat unit tests for bio connector and the tests are not
doing anything special. They set the address to localhost. I tried the
below code similar to the unit tests but I still can't connect to tomcat
when I use this connector.

Connector nioConnector = new Connector(Http11NioProtocol.class.getName());
nioConnector.setPort(TOMCAT_PORT);
nioConnector.setProperty(address,
InetAddress.getByName(localhost).getHostAddress());
tomcat.setConnector(nioConnector);


Unit test I saw is here:
http://svn.apache.org/repos/asf/tomcat/trunk/test/org/apache/catalina/nonbl
ocking/TestNonBlockingAPI.java
And 
http://svn.apache.org/repos/asf/tomcat/trunk/test/org/apache/catalina/start
up/TomcatBaseTest.java


Thanks
Praveen

On 4/23/13 Apr 23, 10:40 AM, Tribon Cheng tribon1...@gmail.com wrote:

Just like this issue:

http://atmosphere-framework.2306103.n4.nabble.com/WebSocket-not-working-on
-Tomcat-7-With-NIO-connector-was-WebSocket-not-working-on-Tomcat-7-td46523
51.html


On Tue, Apr 23, 2013 at 10:16 PM, Mark Thomas ma...@apache.org wrote:

 On 23/04/2013 15:11, Praveen Peddi wrote:
  Hi all, I am trying to set Nio connector in tomcat7 so I can use
  WebSocket support. I did the following (as simple as it can get) but
  it doesn't seem to work. When I do this I can't connect to the
  server. For example I have a GET REST request that should work but I
  get connection refused. Same with WebSocket request.
 
 
  Connector nioConnector = new Connector();
 
  nioConnector.setPort(TOMCAT_PORT);
 
  nioConnector.setProtocol(Http11NioProtocol.class.getName());
 
  tomcat.setConnector(nioConnector);
 
 
  If I comment out above lines and use default Http connector, REST
  requests work fine but WebSockets are not supported with default http
  connector.

 Yes they are.

  So I am wondering if anyone has enabled bio connector in
  embedded tomcat before. I am using embedded tomcat 7.0.34.

 You mean NIO right?

 Look at the source code for the unit tests and/or the source code for
 Connector. You aren't changing what you think you are changing. (Too
 many attributes call Protocol or something similar).

 Mark

 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org




-- 
Contribute to Enterprise Integration


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Setting Nio connector in embedded tomcat7

2013-04-23 Thread Praveen Peddi
Sorry I meant nio connector not bio connector. Outlook auto-correct is
not smart enough :)

On 4/23/13 Apr 23, 12:08 PM, Praveen Peddi ppe...@kivasystems.com
wrote:

I am not sure if this is the same issue I am having but apparently I am
also using atmosphere for web sockets and make it work in embedded tomcat.

I looked at the tomcat unit tests for bio connector and the tests are not
doing anything special. They set the address to localhost. I tried the
below code similar to the unit tests but I still can't connect to tomcat
when I use this connector.

Connector nioConnector = new Connector(Http11NioProtocol.class.getName());
   nioConnector.setPort(TOMCAT_PORT);
   nioConnector.setProperty(address,
InetAddress.getByName(localhost).getHostAddress());
tomcat.setConnector(nioConnector);


Unit test I saw is here:
http://svn.apache.org/repos/asf/tomcat/trunk/test/org/apache/catalina/nonb
l
ocking/TestNonBlockingAPI.java
And 
http://svn.apache.org/repos/asf/tomcat/trunk/test/org/apache/catalina/star
t
up/TomcatBaseTest.java


Thanks
Praveen

On 4/23/13 Apr 23, 10:40 AM, Tribon Cheng tribon1...@gmail.com wrote:

Just like this issue:

http://atmosphere-framework.2306103.n4.nabble.com/WebSocket-not-working-o
n
-Tomcat-7-With-NIO-connector-was-WebSocket-not-working-on-Tomcat-7-td4652
3
51.html


On Tue, Apr 23, 2013 at 10:16 PM, Mark Thomas ma...@apache.org wrote:

 On 23/04/2013 15:11, Praveen Peddi wrote:
  Hi all, I am trying to set Nio connector in tomcat7 so I can use
  WebSocket support. I did the following (as simple as it can get) but
  it doesn't seem to work. When I do this I can't connect to the
  server. For example I have a GET REST request that should work but I
  get connection refused. Same with WebSocket request.
 
 
  Connector nioConnector = new Connector();
 
  nioConnector.setPort(TOMCAT_PORT);
 
  nioConnector.setProtocol(Http11NioProtocol.class.getName());
 
  tomcat.setConnector(nioConnector);
 
 
  If I comment out above lines and use default Http connector, REST
  requests work fine but WebSockets are not supported with default http
  connector.

 Yes they are.

  So I am wondering if anyone has enabled bio connector in
  embedded tomcat before. I am using embedded tomcat 7.0.34.

 You mean NIO right?

 Look at the source code for the unit tests and/or the source code for
 Connector. You aren't changing what you think you are changing. (Too
 many attributes call Protocol or something similar).

 Mark

 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org




-- 
Contribute to Enterprise Integration


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org