【问题标题】:WSDL to JAVA Client code, Using Apache Axis 1.4 and JdeveloperWSDL 到 JAVA 客户端代码,使用 Apache Axis 1.4 和 Jdeveloper
【发布时间】:2013-02-28 14:25:31
【问题描述】:

我正在尝试从 WSDL 生成客户端代码。 我需要在 Jdeveloper 10g IDE 上工作。 我使用内置工具 Oracle JAX-WS 2.1.5 从 WSDL 生成客户端代码。

对于特定的 WSDL,此工具生成大约 122 个 Java 类,其中不包括 Locator 类。运行代码时,我得到 WebServiceLocator 类的类未找到异常。

但是,当我使用 Apache Axis 1.4 (Eclipse IDE) 时,它会生成 63 个 java 类,并且它还包括 WebServiceLocator 类,但这并没有生成身份验证所需的所有方法,但是,甲骨文 JAX-WS 2.1.5。正在生成这些方法。

我尝试将 Eclipse 生成的 java 类合并到 Jdeveloper 中,但是我得到了很多与方法签名相关的错误。

这两个不同的工具生成不同的客户端代码,并且没有一个是完整的,是否有什么特别的原因?

【问题讨论】:

  • but this is not generating all the required methods that are needed for authentication是什么意思?你需要什么方法?什么样的认证?
  • 为了将我们的交换应用程序与特定银行集成,我们获得了他们的 WSDL,并且需要在我们最后使用它。银行要求我们向银行发送请求以及身份验证标头。使用 WSDL Jdeveloper 正在生成一个名为 AuthHeader.java 的 java 类,该类具有银行身份验证所需的 getter 和 setter,例如 authHeader.setAgent_CorrespondentID(Agent_CorrespondentID); authHeader.setAgent_UserID(Agent_UserID); authHeader.setUser_Password(User_Password);而 Eclipse 没有生成这样的方法

标签: java web-services wsdl client


【解决方案1】:

这可能有点晚了,但对于遇到相同问题的人来说,这可能会有所帮助。 如果您真的想使用 Axis 1.x 身份验证,请在您的客户端类上进行如下操作:

MyLocator bindingService = new MyLocator();
bindingService .setPortEndPointAddress(myEndpoint);
MyPort port= bindingService.getMyPort();
((Stub)port)._setProperty(Stub.USERNAME_PROPERTY, myUsername);
((Stub)port)._setProperty(Stub.PASSWORD_PROPERTY, mPassword);
//Perform your query here

我个人会使用 JAX-WS。使用 wsimport 生成存根(SOAPUI 有一个很好的插件来简化它)。对于 JAX-WS 客户端上的身份验证,最简单的方法是将 wsdl 保存在本地并将其作为 jar 的一部分导出,然后将其加载到客户端中。这首先消除了访问 wsdl 所需的 HTTP 授权需求。

URL myWsdlUrl = getClass().getClassLoader().getResource("wsdl/myWsdlFile.wsdl");
MyService service = new MyService(myWsdlUrl , new QName("uri", "localpart"));
myPort port= service .getPort();
BindingProvider bp= ((BindingProvider)vPort);
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, myEndPoint);
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, myUsername);
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, myPassword);
//Perform query here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多