ok Tôi có thực sự là một vấn đề lạ mà tôi tiếp tục tìm kiếm giải pháp trong google và yahoo trong gần 4 giờ ngày hôm nay. Và tôi tuyệt vọng tìm kiếm một giải pháp.javax.xml.ws.WebServiceException: Không xác định loại cổng Java Struts SOAP WSDL
public static String [] checkCardAccount(String cardNumber, String cardIssuer, String securityNumber){
URL url = null;
try {
url = new URL("http://localhost:8999/bankcard?wsdl");
} catch (MalformedURLException e) {
e.printStackTrace();
}
QName qname = new QName("http://server.bcard.soap.com/","BankCardImplService");
Service service = Service.create(url,qname);
BankCard bankcard = service.getPort(BankCard.class);
return bankcard.getCardClientData(cardNumber, cardIssuer);
}
mã trên là khách hàng của tôi để truy cập vào các dịch vụ SOAP, nó thực sự làm việc trong một ứng dụng độc lập java nhưng khi tôi nhúng nó vào ứng dụng Java Struts của tôi nó nói lỗi sau đây
javax .xml.ws.WebServiceException: Loại cổng không xác định: {http://bankcard.api.com/}BankCard tại com.sun.xml.internal.ws.client.WSServiceDelegate.getPort (WSServiceDelegate.java:349) tại com.sun.xml.internal.ws.client.WSServiceDelegate.getPort (WSServiceDelegate.java:355) tại javax.xml.ws.Service.getPort (Service.java:161) tại com.api.bankcard.BankCardClient.checkCardAccount (BankCardClient.java:25) tại com.action.CardregAction.execute (CardregAction.java: 18) tại org.apache.struts.chain.commands.servlet.ExecuteAction.execute (ExecuteAction.java:58) tại org.apache.struts.chain.commands.AbstractExecuteAction.execute (AbstractExecuteAction.java:67) tại org.apache.struts.chain.commands.ActionCommandBase.execute (ActionCommandBase.java:51) tại org.apache.commons.chain.impl.ChainBase.execute (ChainBase.java:191) tại org. apache.commons.chain.generic.LookupCommand.execute (LookupCommand.java:305) tại org.apache.commons.chain.impl.ChainBase.execute (ChainBase.java:191) tại org.apache.struts.chain.ComposableRequestProcessor.process (ComposableRequestProcessor.java:283) tại org.apache .struts.action.ActionServlet.process (ActionServlet.java:1913) tại org.apache.struts.action.ActionServlet.doPost (ActionServlet.java:462) tại javax.servlet.http.HttpServlet.service (HttpServlet. java: 637) tại javax.servlet.http.HttpServlet.service (HttpServlet.java:717) tại org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290) tại org.apache.catalina .core.ApplicationFilt erChain.doFilter (ApplicationFilterChain.java:206) tại org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) tại org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java: 191) tại org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) tại org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) tại org.apache .catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) tại org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) tại org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:857) tại org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java WEBC88) tại org.apache.tomcat .util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489) tại java.lang.Thread.run (Chủ đề.java: 662)
Bây giờ tôi thực sự thấy rằng vấn đề là không gian tên mục tiêu bởi vì khi tôi thay đổi nó thay đổi lỗi cho rằng nó nói rằng các dịch vụ có giá trị là {http://bankcard.api.com/}BankCard
nơi tôi đã đi sai? mã này hoạt động độc lập trên ứng dụng Java nhưng không phải trong ứng dụng web Java Struts của tôi
Làm việc cho tôi, cảm ơn. @WebService (endpointInterface = "com.website.test.CalWebservice") – BustedSanta
@anil kumar, bạn có thể vui lòng hiển thị ví dụ về cách đề cập đến tên cổng đủ điều kiện không? – Alexandr