should work on trunk tested with reload feature of tomcat
*Romain Manni-Bucau* *Twitter: @rmannibucau* *Blog: http://rmannibucau.wordpress.com* 2012/8/21 Enrico Olivelli <[email protected]> > Another NPE > > java.lang.NullPointerException > at java.util.TreeMap.compare(**TreeMap.java:1188) > at java.util.TreeMap.put(TreeMap.**java:531) > at org.apache.openejb.core.**webservices.**PortAddressRegistryImpl.** > addPort(**PortAddressRegistryImpl.java:**57) > > > there is another issue, > it I deploy the app, then undeploy it, and then deploy again OpenEJB > thinks that the port is already deployed > I did some little debug, it seems that "remotePort" is never called > note: for "undeploy" I intend che "undeploy" command in netbeans, I assume > it calls the "undeploy" command of Tomcat > listing apps in Tomcat the app does not appear anymore > and if I restart the server I am able to deploy the app again > > this prevents "reloading" the app and I think it is a kind of memory leak > too > > > Grave: Error deploying CXF webservice for servlet mybeans.MyBean > org.apache.openejb.**OpenEJBException: A webservice port with qname { > http://mybeans/}MyBeanPort is already registered to the portId > localhost/WSTest.mybeans.**MyBean > at org.apache.openejb.core.**webservices.**PortAddressRegistryImpl.** > addPort(**PortAddressRegistryImpl.java:**45) > at org.apache.openejb.server.**webservices.WsService.** > afterApplicationCreated(**WsService.java:358) > at org.apache.tomee.webservices.**TomeeJaxWsService.** > afterApplicationCreated(**TomeeJaxWsService.java:54) > at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method) > at sun.reflect.**NativeMethodAccessorImpl.**invoke(** > NativeMethodAccessorImpl.java:**57) > at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(** > DelegatingMethodAccessorImpl.**java:43) > > - Enrico > > Il 20/08/2012 10:39, Romain Manni-Bucau ha scritto: > >> you are right, >> >> should be better now >> >> *Romain Manni-Bucau* >> *Twitter: @rmannibucau* >> *Blog: http://rmannibucau.wordpress.**com<http://rmannibucau.wordpress.com> >> * >> >> >> >> >> 2012/8/20 Enrico Olivelli <[email protected]> >> >> Another NPE, same cause I think >>> >>> can I ask a question? >>> public synchronized void addPort(String serviceId, QName serviceQName, >>> String portId, QName portQName, String portInterface, String address) >>> public synchronized void removePort(String serviceId, QName serviceQName, >>> String portId) >>> .... >>> // remove from portsByInterface >>> Map<String, PortAddress> ports = portsByInterface.get(****serviceId); >>> >>> .... >>> >>> why don't you pass portInterface to removePort too ? it seems that the >>> key >>> of portsByInterface in addPort is the portInterface (which is actually >>> our >>> problem, if it is null) and in removePort you port.serviceId is used as >>> key >>> >>> >>> Grave: Error deploying CXF webservice for servlet mybeans.MyBean >>> java.lang.NullPointerException >>> at java.util.TreeMap.compare(****TreeMap.java:1188) >>> at java.util.TreeMap.put(TreeMap.****java:531) >>> at org.apache.openejb.core.****webservices.**** >>> PortAddressRegistryImpl.** >>> addPort(****PortAddressRegistryImpl.java:****57) >>> at org.apache.openejb.server.****webservices.WsService.** >>> afterApplicationCreated(****WsService.java:358) >>> at org.apache.tomee.webservices.****TomeeJaxWsService.** >>> afterApplicationCreated(****TomeeJaxWsService.java:54) >>> >>> >>> at sun.reflect.****NativeMethodAccessorImpl.****invoke0(Native >>> Method) >>> at sun.reflect.****NativeMethodAccessorImpl.****invoke(** >>> NativeMethodAccessorImpl.java:****57) >>> at sun.reflect.****DelegatingMethodAccessorImpl.****invoke(** >>> DelegatingMethodAccessorImpl.****java:43) >>> at java.lang.reflect.Method.****invoke(Method.java:601) >>> at org.apache.openejb.observer.****ObserverManager$Observer.** >>> invoke(ObserverManager.java:****143) >>> at org.apache.openejb.observer.****ObserverManager.fireEvent(** >>> ObserverManager.java:68) >>> >>> - Enrico >>> >>> >>> Il 18/08/2012 20:19, Romain Manni-Bucau ha scritto: >>> >>> Hi, >>>> >>>> >>>> I think you dont need the servlet class (or if it asks it put the >>>> webservice class). >>>> >>>> If it is an ejb it is deployed without more config. >>>> >>>> - Romain >>>> Le 18 août 2012 19:15, "Thiago Veronezi" <[email protected]> a écrit >>>> : >>>> >>>> Hi, >>>> >>>>> Can you check this example? >>>>> http://openejb.apache.org/****examples-trunk/simple-****webservice/<http://openejb.apache.org/**examples-trunk/simple-**webservice/> >>>>> <http://openejb.**apache.org/examples-trunk/**simple-webservice/<http://openejb.apache.org/examples-trunk/simple-webservice/> >>>>> > >>>>> >>>>> Maybe there is something different in your configuration. Can you share >>>>> the >>>>> project you are trying to deploy? >>>>> >>>>> Thanks, >>>>> Thiago. >>>>> >>>>> >>>>> On Sat, Aug 18, 2012 at 12:57 PM, Enrico Olivelli <[email protected] >>>>> >>>>> wrote: >>>>>> Hi, >>>>>> I'm trying to deploy a WebService in TomEE >>>>>> >>>>>> //even trying an EJB with @Stateless() >>>>>> @WebService >>>>>> public class NewWebService { >>>>>> } >>>>>> >>>>>> but I get this error... >>>>>> >>>>>> Grave: Error deploying CXF webservice for servlet >>>>>> exemples.NewWebService >>>>>> java.lang.******IllegalArgumentException: Could not find servlet >>>>>> >>>>>> exemples.NewWebService in web application context /MyTestWebApp >>>>>> at >>>>>> >>>>>> org.apache.tomee.webservices.******TomcatWsRegistry.****** >>>>> setWsContainer(** >>>>> >>>>> TomcatWsRegistry.java:103) >>>>>> at org.apache.openejb.server.******webservices.WsService.** >>>>>> afterApplicationCreated(******WsService.java:350) >>>>>> at org.apache.tomee.webservices.******TomeeJaxWsService.** >>>>>> afterApplicationCreated(******TomeeJaxWsService.java:52) >>>>>> at sun.reflect.******NativeMethodAccessorImpl.****** >>>>>> invoke0(Native >>>>>> Method) >>>>>> at sun.reflect.******NativeMethodAccessorImpl.******invoke(** >>>>>> NativeMethodAccessorImpl.java:******57) >>>>>> at sun.reflect.******DelegatingMethodAccessorImpl.*** >>>>>> ***invoke(** >>>>>> DelegatingMethodAccessorImpl.******java:43) >>>>>> at java.lang.reflect.Method.******invoke(Method.java:601) >>>>>> at org.apache.openejb.observer.**** >>>>>> **ObserverManager$Observer.** >>>>>> invoke(ObserverManager.java:******143) >>>>>> at org.apache.openejb.observer.**** >>>>>> **ObserverManager.fireEvent(** >>>>>> ObserverManager.java:68) >>>>>> at org.apache.openejb.loader.******SystemInstance.fireEvent(** >>>>>> SystemInstance.java:84) >>>>>> at org.apache.tomee.catalina.******TomcatWebAppBuilder.**** >>>>>> afterStart(** >>>>>> TomcatWebAppBuilder.java:1075) >>>>>> at >>>>>> >>>>>> org.apache.tomee.catalina.******GlobalListenerSupport.****** >>>>> lifecycleEvent( >>>>> >>>>> **GlobalListenerSupport.java:******104) >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> I tred to add a Servlet mapped with CFX to web.xml >>>>>> <servlet> >>>>>> <servlet-name>exemples.******NewWebService</servlet-name> >>>>>> <servlet-class>org.apache.cxf.******transport.servlet.**** >>>>>> CXFServlet</** >>>>>> servlet-class> >>>>>> </servlet> >>>>>> <servlet-mapping> >>>>>> <servlet-name>exemples.******NewWebService</servlet-name> >>>>>> <url-pattern>/NewWebService</******url-pattern> >>>>>> </servlet-mapping> >>>>>> >>>>>> >>>>>> but now.. >>>>>> org.apache.catalina.******LifecycleException: Failed to start >>>>>> component >>>>>> [StandardEngine[Catalina].******StandardHost[localhost].** >>>>>> StandardContext[/Servizio]] >>>>>> at org.apache.catalina.util.******LifecycleBase.start(** >>>>>> LifecycleBase.java:154) >>>>>> at org.apache.catalina.core.******ContainerBase.**** >>>>>> addChildInternal(** >>>>>> ContainerBase.java:901) >>>>>> at org.apache.catalina.core.******ContainerBase.addChild(** >>>>>> ContainerBase.java:877) >>>>>> at org.apache.catalina.core.******StandardHost.addChild(** >>>>>> StandardHost.java:618) >>>>>> at org.apache.catalina.startup.**** >>>>>> **HostConfig.deployDescriptor(**** >>>>>> HostConfig.java:650) >>>>>> at org.apache.catalina.startup.******HostConfig.deployApps(** >>>>>> HostConfig.java:531) >>>>>> at org.apache.catalina.startup.**** >>>>>> **HostConfig.check(HostConfig.**** >>>>>> java:1468) >>>>>> at sun.reflect.******GeneratedMethodAccessor108.***** >>>>>> *invoke(Unknown >>>>>> Source) >>>>>> at sun.reflect.******DelegatingMethodAccessorImpl.*** >>>>>> ***invoke(** >>>>>> DelegatingMethodAccessorImpl.******java:43) >>>>>> at java.lang.reflect.Method.******invoke(Method.java:601) >>>>>> at org.apache.tomcat.util.******modeler.BaseModelMBean.invoke(* >>>>>> ***** >>>>>> BaseModelMBean.java:301) >>>>>> at >>>>>> >>>>>> com.sun.jmx.interceptor.******DefaultMBeanServerInterceptor.** >>>>> ****invoke(** >>>>> >>>>> DefaultMBeanServerInterceptor.******java:819) >>>>>> at com.sun.jmx.mbeanserver.******JmxMBeanServer.invoke(** >>>>>> JmxMBeanServer.java:791) >>>>>> at org.apache.catalina.manager.******ManagerServlet.check(** >>>>>> ManagerServlet.java:1436) >>>>>> at org.apache.catalina.manager.******ManagerServlet.deploy(** >>>>>> ManagerServlet.java:856) >>>>>> at org.apache.catalina.manager.******ManagerServlet.doGet(** >>>>>> ManagerServlet.java:353) >>>>>> at javax.servlet.http.******HttpServlet.service(**** >>>>>> HttpServlet.java:621) >>>>>> at javax.servlet.http.******HttpServlet.service(**** >>>>>> HttpServlet.java:722) >>>>>> at org.apache.catalina.core.******ApplicationFilterChain.** >>>>>> internalDoFilter(******ApplicationFilterChain.java:******305) >>>>>> at org.apache.catalina.core.******ApplicationFilterChain.**** >>>>>> doFilter(** >>>>>> ApplicationFilterChain.java:******210) >>>>>> at org.apache.catalina.filters.**** >>>>>> **SetCharacterEncodingFilter.**** >>>>>> doFilter(******SetCharacterEncodingFilter.******java:108) >>>>>> at org.apache.catalina.core.******ApplicationFilterChain.** >>>>>> internalDoFilter(******ApplicationFilterChain.java:******243) >>>>>> at org.apache.catalina.core.******ApplicationFilterChain.**** >>>>>> doFilter(** >>>>>> ApplicationFilterChain.java:******210) >>>>>> at org.apache.catalina.core.****** >>>>>> StandardWrapperValve.invoke(** >>>>>> StandardWrapperValve.java:225) >>>>>> at org.apache.catalina.core.****** >>>>>> StandardContextValve.invoke(** >>>>>> StandardContextValve.java:123) >>>>>> at org.apache.tomee.catalina.******OpenEJBValve.invoke(** >>>>>> OpenEJBValve.java:45) >>>>>> at org.apache.catalina.******authenticator.**** >>>>>> AuthenticatorBase.invoke(** >>>>>> AuthenticatorBase.java:581) >>>>>> at org.apache.catalina.core.******StandardHostValve.invoke(** >>>>>> StandardHostValve.java:168) >>>>>> at org.apache.catalina.valves.******ErrorReportValve.invoke(** >>>>>> ErrorReportValve.java:98) >>>>>> at org.apache.catalina.valves.******AccessLogValve.invoke(** >>>>>> AccessLogValve.java:927) >>>>>> at org.apache.catalina.core.******StandardEngineValve.invoke(** >>>>>> StandardEngineValve.java:118) >>>>>> at org.apache.catalina.connector.******CoyoteAdapter.service(** >>>>>> CoyoteAdapter.java:407) >>>>>> at org.apache.coyote.http11.******AbstractHttp11Processor.**** >>>>>> process(** >>>>>> AbstractHttp11Processor.java:******1001) >>>>>> at >>>>>> >>>>>> org.apache.coyote.******AbstractProtocol$****** >>>>> AbstractConnectionHandler.** >>>>> >>>>> process(AbstractProtocol.java:******585) >>>>>> at org.apache.tomcat.util.net.***** >>>>>> *JIoEndpoint$SocketProcessor.**** >>>>>> run(JIoEndpoint.java:312) >>>>>> 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.******NoClassDefFoundError: >>>>>> >>>>>> org/springframework/context/* >>>>> >>>>> *ApplicationListener >>>>>> at java.lang.ClassLoader.******defineClass1(Native Method) >>>>>> at java.lang.ClassLoader.******defineClass(ClassLoader.java:*** >>>>>> ***791) >>>>>> at java.security.******SecureClassLoader.defineClass(****** >>>>>> SecureClassLoader.java:142) >>>>>> at java.net.URLClassLoader.******defineClass(URLClassLoader.*** >>>>>> *** >>>>>> java:449) >>>>>> at java.net.URLClassLoader.******access$100(URLClassLoader.**** >>>>>> java:71) >>>>>> at java.net.URLClassLoader$1.run(******URLClassLoader.java:361) >>>>>> at java.net.URLClassLoader$1.run(******URLClassLoader.java:355) >>>>>> at java.security.******AccessController.doPrivileged(** >>>>>> ****Native >>>>>> Method) >>>>>> at java.net.URLClassLoader.******findClass(URLClassLoader.java: >>>>>> **** >>>>>> **354) >>>>>> at java.lang.ClassLoader.******loadClass(ClassLoader.java:***** >>>>>> *423) >>>>>> at java.lang.ClassLoader.******loadClass(ClassLoader.java:***** >>>>>> *410) >>>>>> at java.lang.ClassLoader.******loadClass(ClassLoader.java:***** >>>>>> *410) >>>>>> at org.apache.openejb.core.******TempClassLoader.loadClass(** >>>>>> TempClassLoader.java:146) >>>>>> at org.apache.openejb.core.******TempClassLoader.loadClass(** >>>>>> TempClassLoader.java:66) >>>>>> at org.apache.openejb.config.******AnnotationDeployer$** >>>>>> ProcessAnnotatedBeans.deploy(******AnnotationDeployer.java:**1904) >>>>>> at org.apache.openejb.config.******AnnotationDeployer$** >>>>>> ProcessAnnotatedBeans.deploy(******AnnotationDeployer.java:**1678) >>>>>> at org.apache.openejb.config.******AnnotationDeployer.deploy(** >>>>>> >>>>>> AnnotationDeployer.java:333 >>>>>> >>>>>> >>>>>> I always deployed webservices with pure Metro deployed in the webapp, >>>>>> but >>>>>> I wanted to try the out-of-the-box support in TomEE >>>>>> >>>>>> Thanks >>>>>> - Enrico >>>>>> >>>>>> >>>>>> >>>>>> >
