我正在努力解决一个奇怪的问题:当我在localhost JBoss实例中对POJO或Seam组件进行更改时,重新启动它并加载页面,可以看到更改.但是,在我们的服务器上运行相同版本的JBoss,当我停止实例,删除WAR文件,上传最新版本并重新启动JBoss时,它不会显示一些新的服务器端功能.
具体来说,更改是一个POJO类,它实现了javax.faces.validator.Validator类.然后在XHTML Facelet中使用它,如下所示:
<h:inputText value="#{outsideaccount.accountOrganizationEmail}" maxlength="50"
id="txtOrganizationSupportEmail"
validatorMessage="Organization Support Email is not valid. It must be in the pattern 'some_id@some_domain.com'.">
<f:validator validatorId="AnyEmailValidator"/>
</h:inputText>
Run Code Online (Sandbox Code Playgroud)
我可以正确使用我的localhost JBoss上的电子邮件验证程序; 在开发服务器上,它在同一页面上使用相同的电子邮件抛出验证错误.很奇怪.JBoss是否在某处缓存了类文件?如何清除JBoss开发服务器缓存中的所有内容?
我在本地使用Win XP Pro; 开发服务器在JVM版本1.5.0_16-b02上使用JBoss 4.2.3.GA,使用Unix SunOS 5.10.谢谢.
假设,我有很多类,它们是使用Java反射构造的(出于某种原因).现在我需要将值后注入到字段中,这些字段用注释@PostInject.
public class SomeClass {
@PostInject
private final String someString = null;
public void someMethod() {
// here, someString has a value.
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:使用反射设置字段的快速方法是什么?
请记住,我需要经常在很多课程上这样做,这就是性能相关的原因.
这个伪代码显示了我通过直觉做的事情:
clazz.getFields();eachField.getAnnotation(PostInject.class);eachAnnotatedField.setAccessible(true);eachAnnotatedField.set(clazz, someValue);我害怕获得所有领域是最慢的事情.
当我从一开始就知道它时,我可以得到一个领域吗?
注意:我不能让这些类实现一些接口,这将允许使用方法设置字段.我需要POJO.
注2:为什么我要进行现场注入:从API用户的角度来看,必须能够使用最终字段.此外,当API先验地不知道字段的类型和数量时,不可能使用接口实现字段初始化.
注2b:从用户的角度来看,最终合同没有被打破.它保持最终.首先,字段初始化,然后无法更改.顺便说一句:有很多API使用这个概念,其中一个是JAXB(JDK的一部分).
我的问题是,我有简单的Pojos或只是包含数据的对象.这些可以变化,并且可以在运行时添加这些类型的新类型.
所以我需要一个Swing GUI来输入文本.是否有一个框架可以在运行时从POJO动态创建Swing GUI?从技术上讲,应该可以使用反射和/或注释.但是,我在网上找不到任何内容.那里有这样的东西吗?
在我们的项目中,我们有一个限制,即没有奢侈品来改变现有的桌面结构.这些表在性质上是高度非规范化的.
我们为应用程序提出了很好的POJO.我们从现有表中生成了Entity bean.现在我们必须将POJO映射到实体,以便我们可以持久化.
最终,我们将一个好的POJO与一个坏桌子结合起来.关于这种方法的选择/替代/建议的任何想法?
我需要一个框架来通过TCP/IP在两个(或更多客户端/服务器模型)Java程序之间传输POJO.我需要它尽可能简单,但它必须支持每个服务器的几个客户端,并且容易实现加密是一个加号.
到目前为止,我已经研究过Java RMI,JRemoting,AltRMI和NinjaRMI.现在JRemoting看起来是最好的选择,因为它很简单,并且不像其他大多数人那样需要奇怪的和看似不必要的扩展和实现.除了Java RMI之外,似乎没有任何活动开发.我不知道这是因为它们是稳定的,不需要更多的开发,或者因为这些类型的框架不再"酷"了.
POJO只是一揽子财产.我需要服务器保存一个静态的对象列表,客户端必须能够(1)读取列表,(2)将对象添加到列表中,以及(3)从列表中删除对象.
有什么建议?
我正在开发一个Android应用程序,我正在尝试使用Jackson的Stream功能实现一些Java数据的处理.为了做到这一点,我有一些代码示例来贯穿并将解释每个人做什么.
这是我正在使用的JSON:
{
"users": [
{
"ID": "26",
"data1": "Momonth",
"data2": "2011-10-30 04:34:53"
},
{
"ID": "45",
"data1": "Porto",
"data2": "2011-10-18 05:34:00"
},
{
"ID": "21",
"data1": "Tomson",
"data2": "2011-10-12 02:44:13"
}
],
"success": 1,
}
Run Code Online (Sandbox Code Playgroud)
下面的代码是POJO,当数据遍历我的数据中的每个"users"数组列表项时,将存储这些数据:
@JsonRootName(value = "users")
public class User {
String ID;
String data1;
String data2;
...
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 …Run Code Online (Sandbox Code Playgroud) 使用hibernate和java,我们需要将所有java pojo字段映射到Database表列吗?或者我们只能映射少数列的几个字段?
(编辑澄清)我有一个POJO(SessionStorage)来存储会话特定数据,我想在成功验证后填充它.因为我将Scope设置为"session",所以我期望MainController和AuthenticationSuccesshandler使用相同的对象实例.
当我运行WebApp时,主控制器启动一个实例(如预期的那样),但是当我登录时,AuthenticationSuccesshandler似乎没有自动装配SessionStorage对象,因为它会抛出NullPointerException.
我如何让它做我想要的?以下是我的代码的摘录:
@Component
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class SessionStorage implements Serializable{
long id;
public int getId() {
return id;
}
public SessionStorage() {
System.out.println("New Session Storage");
id = System.currentTimeMillis();
}
}
Run Code Online (Sandbox Code Playgroud)
主控制器如下所示:
@Controller
@Scope("request")
@RequestMapping("/")
public class MainController {
@Autowired
private SessionStorage sessionStorage;
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login(
@RequestParam(value = "error", required = false) String error,
@RequestParam(value = "logout", required = false) String logout) {
System.out.println(sessionStorage.getId()); //Works fine
ModelAndView model = new …Run Code Online (Sandbox Code Playgroud) 我需要在Spring项目中将POJO转换为JSON字符串.我知道Spring MVC提供了一种方便的方法来通过注释@ResponseBody在控制器中返回json,我想知道Spring如何在内部将pojo转换为JSON?从Spring MVC maven依赖的层次结构中,我找到了jackson-databind和jackson-core库.在阅读杰克逊教程时,它说不同的库:
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.8.5</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
转换代码如下:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("c:\\user.json"), user);
Run Code Online (Sandbox Code Playgroud)
我的问题是:
1:spring restful controller如何将POJO转换为JSON?通过使用杰克逊但不同的依赖库?
2:如果我使用上面的Jackson示例将POJO转换为JSON,我是否必须将json写入文件?是否可以直接获取JSON字符串?
3:在Spring项目中将POJO转换为JSON的最佳方法是什么 - 不使用@ResponseBody,因为我想将POJO转换为JSON并将其保存到数据库,@ ResponseBody用于提供宁静的服务,不适合我的情况.
非常感谢你提前回答.
使用Lambda进行首次尝试.创建代码,部署,测试工作,但是:
public String handleRequest(MyType inObj, Context context) {
// logging inObj here
}
Run Code Online (Sandbox Code Playgroud)
POJO课程
public class MyType {
String prop;
String otherProp;
}
Run Code Online (Sandbox Code Playgroud)
在调用时,我给出了以下有效负载:
{ "prop": "val1", "other_prop": "val2" }
Run Code Online (Sandbox Code Playgroud)
如你所见,我想在snake_case中给json.当lambda记录时,我可以看到
inObj.prop =="val1"
inObj.otherProp =="null".
当我将jSON从snake_case更改为camelCase时,它被正确地反序列化并且otherProp =="val2".我尝试将@JsonProperty("other_prop")添加到字段中,添加getter和setter(在camelCase中)并将@JsonProperty添加到那些(随机猜测),但没有任何改变.
问:我如何描述MyType类,以便AWS Lambda将其从snake_case正确反序列化为camelCase?
pojo ×10
java ×9
json ×3
hibernate ×2
jackson ×2
spring ×2
annotations ×1
aws-lambda ×1
caching ×1
dynamic ×1
frameworks ×1
jboss ×1
jsf ×1
reflection ×1
rmi ×1
rpc ×1
scope ×1
swing ×1