【发布时间】:2022-01-20 08:07:31
【问题描述】:
Soap 服务是远程托管的,但由于我们服务器的一些限制,我获得了 WSDL 并将其存储在本地。使用 maven、org.apache.cxf 插件和生成源命令我从本地 WSDL 生成了类。
WebServiceClient 类属性:
@WebServiceClient(name = "ManageCredit",
wsdlLocation = localWSDLAddress,
targetNamespace = targetNamespace)
public class ManageCredit extends Service {
public final static URL WSDL_LOCATION;
public final static QName SERVICE = new QName(targetNamespace, "ManageCredit");
public final static QName ManageCreditEndpoint = new QName(targetNamespace, "ManageCreditEndpoint");
static {
URL url = null;
try {
url = new URL(localWSDLAddress);
} catch (MalformedURLException e) {
java.util.logging.Logger.getLogger(ManageCredit.class.getName())
.log(java.util.logging.Level.INFO,
"Can not initialize the default wsdl from {0}", localWSDLAddress);
}
WSDL_LOCATION = url;
}
客户端设置:
ManageCredit manageCreditService = new ManageCredit();
ManageCreditPortType manageCreditPortType = manageCreditService.getManageCreditEndpoint();
SignContractRequest signContractRequest = new SignContractRequest();
signContractRequest.setRequestID("123");
signContractRequest.setApplicationID("1111");
signContractRequest.setChannelID("someValue");
manageCreditPortType.signContract(signContractRequest);
使用此代码,调用 http://localhost:8080/.... 我需要调用远程服务器,例如https://example.google:1820,而不是本地主机。如何在不更改 wsdl 位置的情况下更改客户端调用的端点。
【问题讨论】:
标签: java maven wsdl cxf soap-client