Bonsoir,

J'essaie de faire fonctionner un serveur utilisant Apache CXF et Spring sur un serveur Jetty embarqué. En exécutant le projet l'initialisation semble se dérouler normalement, cependant lorsque je pointe mon navigateur sur http://localhost:8080/MonService, m'attendant à voir le WSDL de ce service, je vois l'exception suivante :

GRAVE: /SomeService
java.lang.NullPointerException
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:163)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFServlet.java:145)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Je ne vois pas trop ce qui pourrait causer ceci. Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public static void main(String[] args) throws Exception {                    
    new ClassPathXmlApplicationContext(new String[] {"beans-jetty.xml"});
}
beans-jetty.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<bean id="propertyConfigurer"
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="file:conf/server.properties" />
</bean>
 
<bean id="server"
      class="org.mortbay.jetty.Server"
      init-method="start"
      destroy-method="stop">
    <property name="connectors">
        <list>
            <bean id="connector" class="org.mortbay.jetty.nio.SelectChannelConnector">
                <property name="host" value="${server.address}"/>
                <property name="port" value="${server.port}"/>
            </bean>
        </list>
    </property>
    <property name="handlers">
        <list>
            <ref bean="context-cxf"/>
        </list>
    </property>
</bean>
 
<bean name="context-cxf" class="org.mortbay.jetty.servlet.Context">
    <property name="contextPath" value="/" />
    <property name="handler">
        <bean class="org.mortbay.jetty.servlet.ServletHandler">
            <property name="servlets">
                <list>
                    <bean class="org.mortbay.jetty.servlet.ServletHolder">
                        <property name="name" value="cxf-servlet-holder" />
                        <property name="servlet">
                            <bean class="org.apache.cxf.transport.servlet.CXFServlet" />
                        </property>
                    </bean>
                </list>
            </property>
            <property name="servletMappings">
                <list>
                    <bean class="org.mortbay.jetty.servlet.ServletMapping">
                        <property name="servletName" value="cxf-servlet-holder" />
                        <property name="pathSpec" value="/*" />
                    </bean>
                </list>
            </property>
        </bean>
    </property>
</bean>
 
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<import resource="classpath:/beans-cxf.xml" />
beans-cxf.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
 
<jaxws:endpoint
        id="someService"
        implementor="com.projet.services.MonServiceImpl"
        address="${server.address}" />
Merci d'avance pour toute aide ou conseils que vous pourrez me fournir.

CN