When I start the JUnit Test, tomcat throws an exception from Emma as
the following:
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:
353)
at java.net.ServerSocket.bind(ServerSocket.java:336)
at java.net.ServerSocket.<init>(ServerSocket.java:202)
at java.net.ServerSocket.<init>(ServerSocket.java:114)
at com.vladium.emma.rt.RTController.start(RTController.java:99)
at com.vladium.emma.rt.RT.reset(RT.java:222)
at com.vladium.emma.rt.RT.<clinit>(RT.java:540)
at ca.ubc.cpsc410.meetmarket.servlets.MeetMarketServlet.
$VRi(MeetMarketServlet.java)
at
ca.ubc.cpsc410.meetmarket.servlets.MeetMarketServlet.<clinit>(MeetMarketServlet.java)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:
45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at
org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:
127)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:
1099)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:
836)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
135)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
100)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
929)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
405)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:
964)
at org.apache.coyote.AbstractProtocol
$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint
$SocketProcessor.run(JIoEndpoint.java:302)
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:679)
25-Nov-2011 10:16:40 PM org.apache.catalina.core.ApplicationContext
log
INFO: Marking servlet ca.ubc.cpsc410.meetmarket.servlets.EventServlet
as unavailable
25-Nov-2011 10:16:40 PM org.apache.catalina.core.StandardWrapperValve
invoke
SEVERE: Allocate exception for servlet
ca.ubc.cpsc410.meetmarket.servlets.EventServlet
java.lang.Error: EMMA: runtime controller could not be started,
aborting
at com.vladium.emma.rt.RT.reset(RT.java:233)
at com.vladium.emma.rt.RT.<clinit>(RT.java:540)
at ca.ubc.cpsc410.meetmarket.servlets.MeetMarketServlet.
$VRi(MeetMarketServlet.java)
at
ca.ubc.cpsc410.meetmarket.servlets.MeetMarketServlet.<clinit>(MeetMarketServlet.java)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:
45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at
org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:
127)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:
1099)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:
836)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
135)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
100)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
929)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
405)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:
964)
at org.apache.coyote.AbstractProtocol
$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint
$SocketProcessor.run(JIoEndpoint.java:302)
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:679)
I'm not sure of the exact sequence I should use when running Emma to
avoid this from happening. Unfortunately my tests use a lot of the
libraries that are in the project. I did try exporting my JUnit test
cases to another project, and taking this project as a Jar, but
somehow the build has been modified to include the emma stuff which is
no longer included:
JUnit throws an exception:
java.lang.NoClassDefFoundError: com/vladium/emma/rt/RT.
If I include the jar file in this seperate project I get the same
issue. Even doing a clean of my project doesn't remove this stuff from
the completed JAR file. I'm not sure if I am going down the wrong path
either.