有没有什么方法可以使用Jackson JSON Views或类似的东西,而无需注释原始的bean类?我正在寻找某种运行时/动态配置让我做类似的事情.
我的bean是@Entity一个JAR打包的,可以由多个项目共享.我正试图避免因为消费项目中的UI更改而触摸并重新打包共享JAR.
理想情况下,我想做点什么
jsonViewBuilder = createViewBuilder(View.class);
jsonViewBuilder.addProperty("property1");
jsonViewBuilder.addProperty("property2");
Run Code Online (Sandbox Code Playgroud)
取代
Bean {
@JsonView(View.class)
String property1;
@JsonView(View.class)
String property2;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
底层环境:Spring 3.0,Spring MVC和Glassfish 3.1.1.
完成以下任务的最佳方法是什么?
我能想到的几个方法可能会工作.还有其他什么,哪个最好?
使用@TransactionManagement(type=BEAN)和UserTransaction,并在捕获异常后显式回滚.例如:
catch (Exception e) {
e.printStackTrace();
utx.rollback();
}
使用容器管理的事务,指定@TransactionAttribute(value=NOT_SUPPORTED)上onMessage然后委托DB活动与一个单独的方法@TransactionAttribute(value=REQUIRED).
保留事务处理,并在服务器中重新配置重试属性.我正在使用Glassfish 3.1.1,我不确定如何设置它.
保留所有内容并明确检查消息是否在正文中重新发送,onMessage如果重新发送则退出.(message.getJMSRedelivered()?)
什么运作良好?有没有一种标准/最佳实践方法来处理这个问题?
有没有办法用JSF EL表达式中的默认值替换null,有点像Oracle NVL函数?
我知道我可以做点什么
#{obj == null ? 'None' : obj.property}
Run Code Online (Sandbox Code Playgroud)
但希望有一种自动方式可以做到这一点,所以我不会复制/粘贴三元Elvis运算符两侧的相同表达式.
我正在寻找类似的东西
#{default(obj.property, 'None')}
Run Code Online (Sandbox Code Playgroud) contains在Java集合上执行null-safe的最佳方法是什么?
换一种说法 -
if (collection != null && collection.contains(x))
Run Code Online (Sandbox Code Playgroud)
?
我希望Apache commons-collections有类似的东西CollectionUtils.contains(collection, x),如果集合为null,就会返回false,因为有size(),像空集合一样处理null.
然而,似乎没有这样的事情 - 我只是想念它吗?
我有单点登录工作漂亮,但单点登出不起作用.
场景是这样的:
两个应用程序的注销按钮首先调用session.invalidate()然后重定向到https://localhost:8443/cas/logout
单点注销过滤器是web.xml文件中的第一个过滤器.我也有SingleSignOutHttpSessionListenerweb.xml.
以下是我的web.xml摘录
<!-- CAS settings -->
<!-- Use filter init-param if your container does not support context params.
CAS Authentication Filter and CAS Validation Filter need a serverName init-param
in lieu of a context-param definition. -->
<context-param>
<param-name>serverName</param-name>
<param-value>https://localhost:8443</param-value>
</context-param>
<!-- Facilitates CAS single sign-out -->
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<!--
CAS client filters
Single sign-out filter MUST come first since it needs to be evaluated
before …Run Code Online (Sandbox Code Playgroud) 我有一个h:commandLink调用方法来改变绑定到无线电输入的属性.
我还在同一个表单上有一个文本输入,带有一些验证(required = true).
如果我离开了文本输入栏,并点击h:commandLink同execute="@this,从模型属性如预期,因为文字输入从未处理和验证永远不会触发单选按钮更新.
但是,如果一开始我点击一个不同的h:commandLink与execute="@form",然后与链接execute="@this",确认消息消失,但单选按钮值也不会离即使UIInput单选按钮从未处于无效状态的模型更新.
我发现它的execute="@this"行为方式有所不同,这取决于我以前做过的事情,当我的意图@this是迫使所有内容从模型更新并忽略组件中提交的任何值时.
我怀疑发生的事情是这样的:
@form,单选按钮和文本都被处理.localValue设置localValue保持设置状态并且不会被清除或传播到valueresetValue()或重新处理有问题的组件(例如,execute="@this radio")以清除localValue然后允许从bean刷新.我的问题是:
感觉这可能只是这个问题的另一个例子
在验证错误发生后,如何使用PrimeFaces AJAX填充文本字段?
不幸的是,我觉得我最近发现了很多这些.:-(
代码示例如下:
<h:form>
<h:messages/>
Radio =
<h:selectOneRadio value="#{testBean.radioValue}" id="radio" binding="#{radio}">
<f:selectItem itemValue="foo" itemLabel="Foo"/>
<f:selectItem itemValue="bar" itemLabel="Bar"/>
</h:selectOneRadio>
<br></br>
radio bean value = <h:outputText value="#{testBean.radioValue}"/>
<br></br>
radio UIInput localValue …Run Code Online (Sandbox Code Playgroud) 我在R中犯了这个菜鸟错误
subset(mtcars, cyl = 4)
Run Code Online (Sandbox Code Playgroud)
用单等于=而不是双等于==
为什么它会无声地失败,即返回未过滤的列表,而不是打破错误?
假设我有一个类似的查询
select * from remote_table
join local_table using(common_key)
Run Code Online (Sandbox Code Playgroud)
其中 remote_table 是一个FOREIGN TABLEwithpostgres_fdw并且local_table是一个普通表。
local_table小(100 行)和remote_table大(数百万行)。
看起来远程表被整体拉取并在本地加入,此时将较小的表发送到远程服务器并远程加入会更有效。
有没有办法让 postgres_fdw 做到这一点?
我希望有一个CI构建(例如,Hudson)设置并拆除Oracle 11g架构,作为一个相当普通的JSF/JPA应用程序的每晚构建/测试周期的一部分.
最明显的方法是删除并重新创建所有表.虽然这感觉相当标准(至少,这就是Hibernate/JPA工具会为您自动完成的),但我已经让Oracle DBA警告我,在重复的对象创建/删除周期后,Oracle目录将会碎片化.最终这会导致性能问题,因为SYSTEM表空间无法进行碎片整理/合并.
我的问题是:
谢谢!
在Linux/Ubuntu上的Eclipse Indigo和Glassfish 3.1.2中.JDK 1.6.0_32.
使用最新的Eclipse Glassfish插件在Glassfish 3.1.2.2和Eclipse Juno上更新相同的结果.
Eclipse调试器在断点处停止,但不会将"调试"选项卡与当前线程/位置同步,并且不会将光标显示在当前行.如果我手动展开每个线程的选项卡,我可以找出哪个线程停止了以及哪个线路.如果我点击它,我可以在当前行显示指针.然而,一旦我跨过/进入(F5/F6),当前行光标再次消失,我必须全部完成.
调试器不工作正常使用JUnit和Java SE应用程序.这也是我第一次启动Eclipse和Glassfish,一切正常.如果我重新启动Glassfish,调试器就会崩溃,直到我再次重启Eclipse.
有谁见过这个并找到了修复方法?
glassfish ×2
jsf ×2
spring ×2
ajax ×1
cas ×1
collections ×1
debugging ×1
eclipse ×1
ejb-3.1 ×1
el ×1
glassfish-3 ×1
hibernate ×1
jackson ×1
java ×1
java-ee ×1
jms ×1
jpa ×1
json ×1
jsp ×1
null ×1
oracle ×1
postgres-fdw ×1
postgresql ×1
r ×1
spring-mvc ×1
validation ×1