私は自分のプロジェクトでApache CXFを使用しようとしています。だから、私はこのコードを入れてxmlファイルcxf-client.xml
設定:設定Apache CXF
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
xsi:schemaLocation="http://cxf.apache.org/transports /http/configuration
http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.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" />
<http-conf:conduit name="*.http-conduit">
<http-conf:client ConnectionTimeout="3000" ReceiveTimeout="3000"/>
</http-conf:conduit>
</beans>
を私の質問は、どのように、どこで私が正しく私のプロジェクトを実行するために、このファイルを読むことができるのですか?私はより多くの設定が必要ですか?ここ
は私のクライアントクラスのjavaのです:ここ
@WebServiceClient(name = "name",
wsdlLocation = "sourse?wsdl",
targetNamespace = "myNameSpace")
public class MyClass extends Service {
public final static URL WSDL_LOCATION;
public final static QName SERVICE = new QName("myNameSpace", "name");
public final static QName MyEndpointServiceImplPort = new QName("myNameSpace", "MyEndpointServiceImplPort");
static {
URL url = null;
try {
String urlString = System.getProperty("webservice.trainmission.url");
url = new URL(urlString);
} catch (MalformedURLException e) {
e.getMessage();
}
WSDL_LOCATION = url;
}
public MyClass(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}
@WebEndpoint(name = "MyEndpointServiceImplPort")
public MyEndpointServicePortType getMyEndpointServiceImplPort() {
return super.getPort(MyEndpointServiceImplPort, MyEndpointServicePortType.class);
}
は私web.xml
です:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com /xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>MyProject</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:conf/cxf-client.xml
</param-value>
</context-param>
<servlet>
<description>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>
<listener>
<display-name>Spring Web Context Loader Listener</display-name>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
私はそれがこのラインsuper(wsdlLocation, serviceName);
でブロックされ、それが使用していないMyClass
のインスタンスを作成するときにタイムアウトが発生しました
を参照してください。私はあなたのプロジェクトでそれを使用する方法を知っている春についてのチュートリアルを読むことをお勧めします – pedrofb
あなたの答えに感謝!私はクラスパスとして 'web.xml'でこのクラスを呼び出しました。あなたは私がより多くの設定が必要なのか、それとも良いのか考えていますか? – josef
ContextLoaderListenerを設定する必要があります。これを確認してくださいhttp://stackoverflow.com/questions/6451377/loading-context-in-spring-using-web-xml – pedrofb