Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 避免RPC(SOAP)API之间的中间数据转换?_Java_Web Services_Rest_Soap_Jax Ws - Fatal编程技术网

Java 避免RPC(SOAP)API之间的中间数据转换?

Java 避免RPC(SOAP)API之间的中间数据转换?,java,web-services,rest,soap,jax-ws,Java,Web Services,Rest,Soap,Jax Ws,假设我开发了两个名为ProductAPI和OrderAPI的服务。它们都使用公共域模型(公共实体层次结构) 这两个服务最终都作为RCP(SOAP或REST)公开。 OrderAPI在内部调用ProductAPI 对于其余的情况: 我们可以使用JAX-RS开发ProductAPI,还可以实现一个“ProductAPI REST客户端”,在OrderAPI中使用它来访问ProductAPI 该客户机可以使用相同的类继承器将JSON反序列化为ProductAPI中使用的相同类 因此,没有中间格式转换

假设我开发了两个名为ProductAPIOrderAPI的服务。它们都使用公共域模型(公共实体层次结构)

这两个服务最终都作为RCP(SOAP或REST)公开。 OrderAPI在内部调用ProductAPI

对于其余的情况:

我们可以使用JAX-RS开发ProductAPI,还可以实现一个“ProductAPI REST客户端”,在OrderAPI中使用它来访问ProductAPI

该客户机可以使用相同的类继承器将JSON反序列化为ProductAPI中使用的相同类

因此,没有中间格式转换

如果是肥皂:

我们使用JAX-WS(或Axis2..etc)开发ProductAPI,并在WSDL中公开服务。 在这种情况下,我们必须使用公开的WSDL实现“ProductAPI SOAP客户端”(可能使用使用公开的WSDL的存根生成工具)

在这里,生成的类是从WSDL中的XSD定义生成的,如果我们想使用相同的公共域模型类,我们必须进行额外的格式转换

我的问题是:

1) 对于SOAP,有没有办法跳过这种格式转换

2) 在企业应用程序(如电子商务)中,避免这种中间数据转换以提高性能是否是一种良好的做法

  • 要在进程之间移动数据,需要序列化数据。当然,对于序列化数据,您可以使用与SOAP不同且更好的格式,但如果您已经有了SOAP,则需要做更多的工作

  • 在这类项目中,程序员的努力是否值得换取性能?我的猜测是否定的,因为不管怎样,表演可能已经足够好了。如果不是,通常的建议是在优化任何东西之前测量和识别瓶颈