You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "tryte (JIRA)" <ji...@apache.org> on 2014/02/11 10:53:20 UTC

[jira] [Commented] (OPENEJB-2067) Wrong URL when hot-deploying @WebService to TomEE+ 1.6.0

    [ https://issues.apache.org/jira/browse/OPENEJB-2067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13897682#comment-13897682 ] 

tryte commented on OPENEJB-2067:
--------------------------------

I'm seeing a similar stacktrace with an application that worked just fine in v1.5.2. TomEE v1.6.0 and v1.6.1-20140211.041339-72 (-SNAPSHOT) however yield the following stacktrace:

{noformat}
Feb 11, 2014 10:32:13 AM org.apache.openejb.server.rest.RESTService logOldDeploymentUsage
INFO: Using deployment by endpoint instead of by application for JAXRS deployment because an old configuration (by class/ejb) was found on com.example.tomee.agent.rest.HttpdRestService
Feb 11, 2014 10:32:13 AM org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory
INFO: Using providers [org.apache.cxf.jaxrs.provider.json.JSONProvider@38b01071]
Feb 11, 2014 10:32:13 AM org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be http://localhost:8080/agent
Feb 11, 2014 10:32:13 AM org.apache.openejb.server.rest.RESTService deployPojo
INFO: REST Service: http://localhost:8080/agent/tomee/*  -> Pojo com.example.tomee.agent.rest.TomeeRestService
Feb 11, 2014 10:32:13 AM org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory
INFO: Using providers [org.apache.cxf.jaxrs.provider.json.JSONProvider@63f55210]
Feb 11, 2014 10:32:13 AM org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be http://localhost:8080/agent
Feb 11, 2014 10:32:13 AM org.apache.openejb.observer.ObserverManager fireEvent
SEVERE: error invoking Observer{class=org.apache.tomee.webservices.TomeeJaxRsService}
org.apache.cxf.service.factory.ServiceConstructionException
        at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:194)
        at org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deploy(CxfRsHttpListener.java:306)
        at org.apache.openejb.server.cxf.rs.CxfRsHttpListener.deployPojo(CxfRsHttpListener.java:259)
        at org.apache.openejb.server.rest.RESTService.deployPojo(RESTService.java:712)
        at org.apache.openejb.server.rest.RESTService.fullServletDeployment(RESTService.java:409)
        at org.apache.openejb.server.rest.RESTService.afterApplicationCreated(RESTService.java:276)
        at org.apache.tomee.webservices.TomeeJaxRsService.afterApplicationCreated(TomeeJaxRsService.java:51)
        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:149)
        at org.apache.openejb.observer.ObserverManager.fireEvent(ObserverManager.java:69)
        at org.apache.openejb.loader.SystemInstance.fireEvent(SystemInstance.java:108)
        at org.apache.tomee.catalina.TomcatWebAppBuilder.afterStart(TomcatWebAppBuilder.java:1602)
        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:113)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:168)
        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:634)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1074)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1858)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Already a destination on http://localhost:8080/agent
        at org.apache.cxf.transport.http.DestinationRegistryImpl.addDestination(DestinationRegistryImpl.java:49)
        at org.apache.cxf.transport.http.AbstractHTTPDestination.activate(AbstractHTTPDestination.java:854)
        at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:49)
        at org.apache.cxf.binding.AbstractBaseBindingFactory.addListener(AbstractBaseBindingFactory.java:97)
        at org.apache.cxf.jaxrs.JAXRSBindingFactory.addListener(JAXRSBindingFactory.java:89)
        at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:131)
        at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:185)
        ... 30 more

Feb 11, 2014 10:32:13 AM org.apache.catalina.startup.HostConfig deployDirectory
{noformat}

None of the 2 JAX-RS POJOs in that webapp uses {{@Path("/")}} or similar. Restarting TomEE or doing a hot-deploy does not fix the problem.

> Wrong URL when hot-deploying @WebService to TomEE+ 1.6.0
> --------------------------------------------------------
>
>                 Key: OPENEJB-2067
>                 URL: https://issues.apache.org/jira/browse/OPENEJB-2067
>             Project: OpenEJB
>          Issue Type: Bug
>          Components: deployment
>    Affects Versions: 4.6.0
>         Environment: Windows, Linux
>            Reporter: rop
>            Assignee: Romain Manni-Bucau
>            Priority: Minor
>             Fix For: 4.6.1
>
>
> When deploying a war-file with webservice denoted only 
> with @Stateless @WebService annotation (no arguments, and empty web.xml config), there is a problem with hot-deploy in TomEE.
> How to reproduce the error:
> 0. Build the simple source-code example below with: mvn install
> 1. Start TomEE, and then hot-deploy the war-file. It gets deployed to URL like this
>   http://localhost:8080/ws/webservices/App
> which is OK.
> 2. Do hot-UNdeploy. Also OK.
> 3. Next, hot-deploy the war-file a second time. 
> Apparently, it is trying to deploy to a weird URL:
>   http://App:80
> which fails of course. I get the Exception below.
> All subsequent hot-deploy attempts will raise the same Exception.
> If you leave the war-file in webapps, and shutdown + restart TomEE, it gets correctly deployed again.
> SEVERE: Error deploying JAX-WS Web Service for EJB App
> java.lang.RuntimeException: Already a destination on http://App:80
>         at org.apache.cxf.transport.http.DestinationRegistryImpl.addDestination(DestinationRegistryImpl.java:49)
>         at org.apache.cxf.transport.http.AbstractHTTPDestination.activate(AbstractHTTPDestination.java:853)
>         at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:49)
>         at org.apache.cxf.binding.AbstractBaseBindingFactory.addListener(AbstractBaseBindingFactory.java:97)
>         at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:837)
>         at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:131)
>         at org.apache.openejb.server.cxf.CxfEndpoint.doPublish(CxfEndpoint.java:222)
>         at org.apache.openejb.server.cxf.CxfEndpoint.publish(CxfEndpoint.java:161)
>         at org.apache.openejb.server.cxf.CxfWsContainer.start(CxfWsContainer.java:51)
>         at org.apache.openejb.server.cxf.CxfService.createEjbWsContainer(CxfService.java:83)
>         at org.apache.openejb.server.webservices.WsService.deployApp(WsService.java:278)
>         at org.apache.openejb.server.webservices.WsService.afterApplicationCreated(WsService.java:224)
>         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:606)
>         at org.apache.openejb.observer.ObserverManager$Observer.invoke(ObserverManager.java:149)
>         at org.apache.openejb.observer.ObserverManager.fireEvent(ObserverManager.java:69)
>         at org.apache.openejb.loader.SystemInstance.fireEvent(SystemInstance.java:108)
>         at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:882)
>         at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:612)
>         at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1205)
>         at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1051)
>         at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:127)
>         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
>         at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
>         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>         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:633)
>         at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:983)
>         at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1660)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
> Simple source-code example:
> -------------------------------------
> src/main/java/ws/App.java:
> -------------------------------------
> package ws;
> import javax.ejb.Stateless;
> import javax.jws.WebService;
> @Stateless
> @WebService
> public class App 
> {
>   public String hello(String name){
>     return "Hello, "+name+"!";
>   }
> }
> -------------------------------------
> src/main/webapp/WEB-INF/web.xml:
> -------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns="http://java.sun.com/xml/ns/javaee"
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>          metadata-complete="false"
>          version="2.5">
> </web-app>
> -------------------------------------
> pom.xml:
> -------------------------------------
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>ws</groupId>
>   <artifactId>ws</artifactId>
>   <version>1.0-SNAPSHOT</version>
>   <packaging>war</packaging>
>   <name>ws</name>
>   <url>http://maven.apache.org</url>
>   <properties>
>     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>   </properties>
>   
>   <build>
>    <finalName>ws</finalName>
>   </build>
>   <dependencies>
>       <dependency>
>       <groupId>org.apache.openejb</groupId>
>       <artifactId>javaee-api</artifactId>
>       <version>6.0-5</version>
>     </dependency>
>   </dependencies>
> </project>



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)