JAX-WS接口上的Java 8默认方法

时间:2018-02-12 19:29:50

标签: java jax-ws

最近在我的工作中,我找到了以下代码(当然简化):

            id    data
0  111-111-111    ones
1  111-111-222    ones
2  333-333-333  threes

如您所见,此接口由# Save a copy the original ids of frame1 frame1_ids = frame1['id'].copy() # Apply the id change to frame1 frame1['id'] = frame1['id'].apply(id_map) # Merge frame1 = frame1.merge(frame2, how='inner', on='id') # Set the ids back to what they originally were frame1['id'] = frame1_ids 注释,并用作SOAP合约。我发现它有点令人惊讶,但它工作正常,一切似乎都没问题(我已经检查过默认方法可以正常使用java代理)。

我仍然有一种奇怪的感觉,这里有些不对劲。首先在架构层面上 - SOAP契约不应该共享代码,它应该只列出允许的操作及其结果(否则,如果我可以在本地链接代码,为什么要使用SOAP)。其次我觉得使用默认方法而不是向服务实现添加两个空方法(两个服务正在使用这个接口)只是一个过度杀伤。

你怎么看?如果我要求这段代码的作者改变它,或者我应该接受这段代码作为工作解决方案,我需要一些建议吗?你有没有人尝试过这样的好事/坏事?

PS。我们使用Apache CXF作为JAX-WS实现(但这不重要)

0 个答案:

没有答案