4 Replies Latest reply: Aug 30, 2011 5:03 AM by Sam W RSS

    How to change jetty binding port number in maven.

    Sam W Expert

      Hi,

       

      I have created a webservice based on CXF2, spring 3.0.5 in a WAR file.

      When I deploy the WAR file to JBoss AS7, it thrown the following exception:

       

       

      Caused by: javax.xml.ws.WebServiceException: org.apache.cxf.interceptor.Fault: Could not start Jetty server on port 80: Address already in use

              at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:350) [cxf-rt-frontend-jaxws-2.4.1.jar:]

              at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:239) [cxf-rt-frontend-jaxws-2.4.1.jar:]

              at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:509) [cxf-rt-frontend-jaxws-2.4.1.jar:]

              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_03-p4]

              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_03-p4]

              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_03-p4]

              at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_03-p4]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544) [spring-beans-3.0.5.RELEASE.jar:]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485) [spring-beans-3.0.5.RELEASE.jar:]

              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) [spring-beans-3.0.5.RELEASE.jar:]

              ... 20 more

       

       

      here is the pom.xml file of the WAR file:

       

       

      <plugin>

                      <groupId>org.apache.cxf</groupId>

                      <artifactId>cxf-java2ws-plugin</artifactId>

                      <version>${cxf.version}</version>

                      <dependencies>

                          <dependency>

                              <groupId>org.apache.cxf</groupId>

                              <artifactId>cxf-rt-frontend-jaxws</artifactId>

                              <version>${cxf.version}</version>

                          </dependency>

                          <dependency>

                              <groupId>org.apache.cxf</groupId>

                              <artifactId>cxf-rt-frontend-simple</artifactId>

                              <version>${cxf.version}</version>

                          </dependency>

                      </dependencies>

                      <executions>

                          <execution>

                                                                                                                 

                              <id>generate-test-sources</id>

                              <phase>generate-test-sources</phase>

                              <configuration>

                                  <sourceRoot>generated/wsdl</sourceRoot>

                                  <wsdlOptions>

                                      <wsdlOption>

                                          <wsdl>Order-Process.wsdl</wsdl>

                                      </wsdlOption>

                                  </wsdlOptions>

       

       

                                  <className>ix.service.order.service.OrderProcess</className>

                                  <genWsdl>true</genWsdl>

                                  <keep>true</keep>

                                  <verbose>true</verbose>

                                         <!-- <tasks>

                                              <copy file="${basedir}/generated/wsdl/OrderProcess.wsdl"

                                                    tofile="${basedir}/src/main/resources/wsdl/OrderProcess.wsdl"/>

                                          </tasks> -->

                              </configuration>

                              <goals>

                                  <goal>java2ws</goal>

                              </goals> 

                          </execution>

                      </executions>

                  </plugin>

                  <plugin>

                      <groupId>org.mortbay.jetty</groupId>

                      <artifactId>maven-jetty-plugin</artifactId>

                      <version>6.1.15</version>

                      <configuration>

                          <scanIntervalSeconds>10</scanIntervalSeconds>

                          <connectors>

                              <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">

                                  <port>8080</port>

                              </connector>

                          </connectors>

                          <webXml>${project.build.directory}/web.xml</webXml>

                          <webAppConfig>

                              <contextPath>/</contextPath>

                          </webAppConfig>

                      </configuration>

                  </plugin>

       

       

      web.xml file:

       

       

      <servlet>

              <description>Order Apache CXF Endpoint</description>

              <display-name>cxf</display-name>

              <servlet-name>cxf</servlet-name>

              <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

              <load-on-startup>1</load-on-startup>

          </servlet>

          <servlet-mapping>

              <servlet-name>cxf</servlet-name>

              <url-pattern>/services/*</url-pattern>

          </servlet-mapping>

          <session-config>

              <session-timeout>60</session-timeout>

          </session-config>

          <context-param>

              <param-name>contextConfigLocation</param-name>

              <param-value>WEB-INF/beans.xml</param-value>

          </context-param>

          <listener>

              <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

          </listener>

       

       

      beans.xml file:

       

       

      <beans xmlns="http://www.springframework.org/schema/beans"

                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"

                xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

                <import resource="classpath:META-INF/cxf/cxf.xml" />

                <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />

                <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

                <jaxws:endpoint id="orderProcess"

                          implementor="ix.service.order.service.OrderProcessImpl"

       

                                          address="http://www.ixsystems.com.au/orderprocess">

                          <jaxws:features>

                                    <bean class="org.apache.cxf.feature.LoggingFeature" />

                          </jaxws:features>

                </jaxws:endpoint>

      </beans>

       

       

      I think it is either I miss the jetty listener configuration in JBOSS AS7 or incorrection/missing the jetty configuration in the pom.xml, web.xml or beans.xml file. But I could not find any workable answers .

       

      Your suggestion is very appreciated.

       

      Thanks

      SW