在Java8上使用Apache CXF 2.7.11实现的一些Java first SOAP服务有一个问题。当TRUE作为值传递时,值将变为null。当true以小写形式传递时,同样的方法也能很好地工作。
我看到另一个线程,其中类扩展xmladapter
以及@xmljavatypeadapter
解决了这个问题,但是生成的WSDL类型已经从xs:boolean更改为xs:string。这意味着使用者应将布尔值作为字符串传递。这在我的情况下是不能接受的。
JAXB类:
@XmlRootElement(name = "myPojo")
public class MyPojo {
@XmlElement(name = "myField")
private Boolean myBoolean;
@XmlJavaTypeAdapter(CustomBooleanAdapter.class)
public void setMyBoolean(Boolean bool) {
myBoolean = bool;
}
public Boolean getMyBoolean() {
return myBoolean;
}
}
<xs:complexType name="myPojo">
<xs:sequence>
<xs:element minOccurs="0" name="myField" type="xs:string"/>
</xs:sequence>
</xs:complexType>
当TRUE作为值传递时,值将变为null。
这是正确的。TRUE不是XML中布尔值的有效值。请参见XML模式规范:
3.2.2.1词汇表征
public static class CustomBooleanAdapter extends XmlAdapter<String, Boolean> {
@Override
public Boolean unmarshal(String s) throws Exception {
return "TRUE".equals(s);
}
@Override
public String marshal(Boolean b) throws Exception {
if (b) {
return "TRUE";
}
return "FALSE";
}
}
我在一节课上做了这个方法。我已经仔细检查过了,应该可以正常工作了。当我使用这个方法在main方法中运行一个对象时,我总是得到一个假返回,即使它应该是真的。 print语句不打印,所以我无法检查值是否正确传递,我还尝试让if语句也返回true,但它仍然返回false!它让我头疼,因为一切在逻辑上都是正确的。 有没有一个我不知道的规则,如果出现错误,布尔方法会自动返回false? 在主要方法中:
问题内容: 关于以下原因为何的任何想法。 当我将request_url粘贴到浏览器中时,我会获取json数据,但是如果我在php中尝试,则var_dump就是bool(false); 有任何想法吗?? 更新并修复 OK伙计们,感谢您的所有帮助。是的,我帮助我追踪了这一情况。事实证明,php.ini配置为禁止打开url,因此file_get_contents无法正常工作。我在各个站点上发现了以下方便
我发现了这个语法: 这个有两个点的语法是什么:叫? 在哪里可以找到有关它的信息? 它是仅适用于布尔值还是以其他不同的方式实现?
问题内容: 如果我这样做: 那又回来了。仅仅是因为在列表中。 但是,如果我这样做: 那又回来了。而等于: 为什么? 问题答案: 运算符优先级 2.x,3.x。的优先级低于的优先级。因此,它等效于: 这就是你想要的: 正如@Ben指出的那样:建议从不写作,更喜欢。前者使它看起来像一个函数调用,而它却是一个运算符,而不是一个函数。
问题内容: 不出所料,空元组不包含1 但是返回的值不等于 换一种方式来看,运算符返回的a既不是也不是: 但是,如果对原始表达式加上括号,则会恢复正常行为 或其值存储在变量中 在Python 2和Python 3中都观察到此行为。 你能解释发生了什么吗? 问题答案: 您正在遇到比较运算符链接;也 没有 意思。 相反,比较是链接在一起的,该表达式的真正含义是: 因为已经为false,所以将完全忽略链接
问题内容: 以下代码不会输出任何内容: 但是下面的代码打印: 有没有更好的方式来打印或时是不是增加一个声明? 问题答案: 或者,如果您只想在为假时输出: