Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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 返回';空';在webservice webmethod中_Java_Web Services_Soap - Fatal编程技术网

Java 返回';空';在webservice webmethod中

Java 返回';空';在webservice webmethod中,java,web-services,soap,Java,Web Services,Soap,我有一个简单的Web服务,我发现如果我返回null我会得到以下异常: com.sun.xml.internal.ws.fault.ServerSOAPFaultException:客户端从服务器接收到SOAP错误:方法参数:返回值不能为null。这是BP 1.1 R2211违规行为。请参阅服务器日志以了解有关故障确切原因的更多详细信息。 这是示例代码,是否有允许webservice返回空值的配置 处理字符串不是什么大问题,我只需返回“” 退回一个POJO怎么样 从数据库读取数据时,我更喜欢返回n

我有一个简单的Web服务,我发现如果我返回
null
我会得到以下异常:

com.sun.xml.internal.ws.fault.ServerSOAPFaultException:客户端从服务器接收到SOAP错误:方法参数:返回值不能为null。这是BP 1.1 R2211违规行为。请参阅服务器日志以了解有关故障确切原因的更多详细信息。

这是示例代码,是否有允许webservice返回空值的配置
处理字符串不是什么大问题,我只需返回

退回一个POJO怎么样
从数据库读取数据时,我更喜欢返回
null
,而不是创建一个空的POJO

@WebService
@SOAPBinding(style = Style.RPC)
public interface IShareObjectService {

    @WebMethod
    String getTest();
}


@WebService(endpointInterface = "ch.scodi.share.service.IShareObjectService", name = "ShareObjectService", serviceName = "ShareObjectService", targetNamespace = "http://shareserver/ws/")
public class ShareObjectService implements IShareObjectService {
    /** ShareObject data access object */
    private ShareObjectDAO dao;

    @Override
    public String getTest() {
        return null;
    }
}
编辑--

假设我想在客户机上执行以下操作:

Category category = categoryService.getByName(name);
if (category == null) {
    category = categoryService.create(name);
}
category...
现在我必须这样做,对于每个返回单个结果的“get…”和“find…”方法,都需要一个“exists…”方法

Category category = null;
if (categoryService.existsByName(name)) {
    category = categoryService.getByName(name);
} else {
    category = categoryService.create(name);
}
category...

所以我想我遗漏了什么?

我找到了一个解决方案,我不得不更改我的服务接口的以下注释
@SOAPBinding(style=style.RPC)
@SOAPBinding(style=style.DOCUMENT)

有关绑定样式的更多信息可在此处找到:

我更喜欢返回null而不是创建一个空POJO,任何使用webservice的人都更喜欢空POJO而不是null。你有一个方法“User getUser(String userId)”怎么样,如果找不到用户ID而不是空用户对象的用户,您难道不希望为null吗?我希望会出现错误。我添加了一个示例来解释我看到的缺点。进一步说明,作为一名开发人员,我希望成为abel,以决定是从webmethod引发异常还是返回null。如果由于技术限制,这是不可能的,请有人告诉我文档。
@WebService
@SOAPBinding(style = Style.DOCUMENT)
public interface IShareObjectService {

  @WebMethod
  String getTest();
}