Tôi đã một dịch vụ web bên ngoài, đó là các công trình trên https, tôi có thể tạo ra các lớp java với wsimport nhưng khi tôi invnoke dịch vụ tôi recive ngoại trừ sau:Webservice với HTTPS
Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.UnknownHostException: ECM01
at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.getOutput(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)
at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)...
Caused by: java.net.UnknownHostException: ECM01
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
Lớp học của tôi mà gọi dịch vụ là một cái gì đó như thế này:
public static void main(String[] args) {
ColleagueServiceService cs = new ColleagueServiceService();
ColleagueService service = cs.getColleagueServicePort();
try {
service.getColleagues("user", "password", 1);
} catch (Exception_Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
tôi tryed sử dụng soapUI gọi webservice, nhưng nó cho thấy một ngoại lệ:
Tue Dec 18 09:40:06 BRST 2012:ERROR:org.apache.http.conn.HttpHostConnectException: Connection to https://my.webservice.url.com refused
org.apache.http.conn.HttpHostConnectException: Connection to https://my.webservice.url.com refused
at com.eviware.soapui.impl.wsdl.support.http.SoapUIMultiThreadedHttpConnectionManager$SoapUIClientConnectionOperator.openConnection(SoapUIMultiThreadedHttpConnectionManager.java:321)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:561)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:236)
at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:345)
at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:241)
at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)...
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)...
EDITED:
webservice này là của tôi, nhưng đó là trong một máy chủ bên ngoài, tôi thấy ColleagueService lớp học của tôi (nó không phải là tôi, người đã làm) nó annoted với:
@WebService(serviceName="ColleagueServiceService")
@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class ColleagueService {
WSDL được tạo tôi đã này:
<port binding="tns:ColleagueServiceBinding" name="ColleagueServicePort">
<soap:address location="http://ECM01:80/services/ColleagueService"/>
</port>
các máy chủ bên ngoài (một khách hàng) có một máy chủ JBoss và một máy chủ apache http, máy chủ http chuyển hướng tất cả requestes bởi ProxyPass với path/dịch vụ/để JBoss máy chủ (server JBoss là host ECM01), dù sao thì wsdl cũng sai vì rvices là https và trong wsdl Tôi đã http
Có ai giúp được không? Cảm ơn bạn.
PS: Tôi có thể truy cập https://my.webservice.url.com/ColleagueService?wsdl trong trình duyệt. –
Bạn có bất kỳ cơ hội nào sau proxy không? –
@ AndersR.Bystrup Có, trong mạng nội bộ của tôi có một proxy. –