Java 什么会导致web服务方法更改传入变量的值?
我是web服务开发的新手,所以可能我不知道什么。。。我有一个web服务类,目前有两个方法。下面只是第二种方法的第一部分Java 什么会导致web服务方法更改传入变量的值?,java,web-services,Java,Web Services,我是web服务开发的新手,所以可能我不知道什么。。。我有一个web服务类,目前有两个方法。下面只是第二种方法的第一部分 @WebMethod(operationName = "getPassengerName") public String getPassengerName(@WebParam(name = "passengerId ") int passengerId) { //MySQL elements Connection connection; ResultSet r
@WebMethod(operationName = "getPassengerName")
public String getPassengerName(@WebParam(name = "passengerId ") int passengerId)
{
//MySQL elements
Connection connection;
ResultSet rs = null;
String returnValue = "start method with passengerId having a value of: " + passengerId;
当我在NetBeans中运行一个“testweb服务”时,传入一个1,附加到字符串的passengerId是0
getPassengerName Method invocation
Method parameter(s)
Type Value
int 1
Method returned
java.lang.String : "start method with passengerId having a value of: 0"
是什么让这一切发生的?我很感激任何人能提供的见解
新内容
为了回应EJK关于passengerID中没有值的帖子,我添加了更多来自“TestWebService”测试的屏幕打印
SOAP请求
1.
我想我已经想到了这个问题。我认为这是NetBeans IDE中的一个bug。我创建了一个新方法,我模仿了这个方法,但它不起作用:
@WebMethod(operationName = "getPassengerName")
public String getPassengerName(@WebParam(name = "passengerId ") int passengerId)
并键入以下内容:
@WebMethod(operationName = "getFirstName")
public String getFirstName(@WebParam(name="passengerNumber") int passengerNumber)
然后我简单地将所有代码复制到这个新方法中,当我检查代码顶部传入的变量的值时,它起作用了-1仍然是1(不是0)
这是在NetBeans 8.0中出现的听起来像是应用了默认值(0表示整数)。我的假设是请求中不存在“passengerId”。我不熟悉这种调用web服务的方法,但是您显示的输出表明整数参数设置为1,但我没有看到任何迹象表明1已应用于命名参数“passengerId”Hi EJK,感谢您这么快的响应。我已经在我的帖子中添加了SOAP请求输入;这表示1的输入将进入元素passengerID,我不知道它是否相关,但您的注释表示“passengerID”,您的代码表示“passengerID”。请注意,最后一个字符大小写不同。是的,对不起,这只是注释中的一个输入错误。与问题无关。
@WebMethod(operationName = "getFirstName")
public String getFirstName(@WebParam(name="passengerNumber") int passengerNumber)