2010-08-05 43 views
0

我正在使用Netbeans创建Web服务,并且代码是用java编写的。我的问题来自于创建2个可供客户访问的功能。功能看起来很相似,但它们的参数是不同的。Glassfish - 部署具有2个同名功能的WSDL

当构建Web服务(int战争文件)时,我没有得到任何抱怨。然而,当将war文件部署到glassfish服务器上时会出现错误,这些错误会让我断定glassfish在某种程度上会在不查看参数列表的情况下对相同名称的2个函数感到困惑。这是否是常见现象,是否有解决方法?

例如:

@WebMethod() 公共龙startMission(@WebParam(NAME = “会议”)会议的会议,字符串名称{ ..... }

@WebMethod( ) 众长startMission(@WebParam(NAME = “会议”)会话的会话,龙NUM { ..... }

GlassFish服务器上的错误回来给我,告诉我,第二startMission功能没有t包含参数@Long num的入口点 - 它告诉我它不能识别2个同名的函数。也许我正在想这是错误的方式。任何帮助,选项,建议将不胜感激。谢谢!

回答

0

您可以通过指定它们对应的操作来区分这两种方法。这是通过为WebMethod注释指定operationName成员值完成的。

例如,

@WebMethod(operationName='startMissionWithName') public Long startMission(@WebParam(name="session") Session session, String name{ ..... } 

@WebMethod(operationName='startMissionWithId') public Long startMission(@WebParam(name="session") Session session, Long num{ ..... } 
+0

将在客户端看到在智能感知造成混乱的操作的名称或将其从内部对用户隐藏? – cws 2010-08-06 13:54:11

+0

注释中描述的操作名称是生成(和发布)的WSDL中存在的操作名称,除非客户机正在使用不同的WSDL文档。所以,就客户而言,现在它会看到两种不同的操作。 – 2010-08-06 14:10:30

+0

那么添加操作名称的差异是什么,只是使2个独立的函数名称?最好给客户端提供与参数选项相同的函数名称,超出函数调用的代码执行将取决于传递的参数。 – cws 2010-08-06 14:30:27