使用CDI @Inject注入Spring bean

我正在尝试将Spring上下文中定义的bean注入CDI托管组件,但我没有成功。 不注入bean,而是每次执行注入时都会创建一个新实例。 我的环境是使用JBoss Weld的Tomcat 7。 Spring ApplicationContext是直截了当的: … … CDI托管bean看起来像这样: @javax.inject.Named(“testA”) public class TestA { @javax.inject.Inject private Test myTest = null; … public Test getTest() { return this.myTest; } } 这是我的faces-config.xml org.springframework.web.jsf.el.SpringBeanFacesELResolver 但是,当我从JSF页面访问test属性时,每次访问时都会创建一个新的Test实例。 这是一个简单的例子: … 1: 2: … 我得到以下输出: 1: test.Test@44d79c75 2: test.Test@53f336eb 刷新后: 1: test.Test@44d79c75 2: test.Test@89f2ac63 我可以看到第一个输出是正确的。 无论我多久刷新一次页面, testFromSpring返回Spring上下文中定义的bean的值。 但是第二个输出清楚地表明,每次调用test组件上的getTest方法时,都会创建并注入一个新的Test实例,而不是像我期望的那样使用Spring上下文中的实例。 那么,这种行为的原因是什么? 如何将Spring上下文中的bean注入CDI托管bean? 我也尝试使用在Spring上下文中定义的名称的限定符,但现在抛出一个exception,表明找不到bean: […]

字符串长度不同于Javascript到Java代码

我有一个JSP页面,其中包含一段Javascriptvalidation代码,该代码限制了提交时的一定数量的字符。 我正在使用所以我不能简单地使用像的长度属性。 我使用document.getElementById(“text”).value.length来获取字符串长度。 我在Windows上运行Firefox 3.0(但我也用IE 6测试了这种行为)。 表单将提交给J2EE servlet。 在我的Java servlet中,参数的字符串长度大于2000! 我注意到这可以通过在添加回车来轻松复制。 我已经使用Firebug来断言的长度,它实际上是2000个字符长。 但是在Java端,回车符转换为UNIX样式( \r\n ,而不是\n ),因此字符串长度不同! 我错过了一些明显的东西或者什么? 如果没有,你如何可靠(跨平台/浏览器)确保是有限的。

JFrame由于对所需库的限制而受到限制

我正在eclipse中创建一个新的Java项目。 唯一的问题是我在得到错误之前甚至没有得到五行: Access Restriction: The type JFrame is not accessible due to restriction on required library C:\Program Files\Java\jre8\lib\rt.jar 我该如何解决这个问题? 如果有人问过类似的问题,请原谅我。 我还是个初学者。

测量JVM中GC的时间

假设我正在测试Java服务器应用程序。 我知道完成测试需要多长时间。 现在,我想知道在测试期间在GC上花了多少钱。 我该怎么做?

如何在JTextField上删除MouseListener / ActionListener

我有以下代码将ActionListener添加到JTextField: chatInput.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { chatInputMouseClicked(evt); } }); 现在如何使用chatInput.removeMouseListener()删除此MouseListener,因为此函数需要参数?

用Java复制文件并替换现有目标

我正在尝试使用java.nio.file.Files复制文件,如下所示: Files.copy(cfgFilePath, strTarget, StandardCopyOption.REPLACE_EXISTING); 问题是Eclipse说“文件类型中的方法副本(Path,Path,CopyOption …)不适用于参数(File,String,StandardCopyOption)” 我在Win7 x64上使用Eclipse和Java 7。 我的项目设置为使用Java 1.6兼容性。 有没有解决方案,或者我必须创建这样的解决方法: File temp = new File(target); if(temp.exists()) temp.delete(); 谢谢。

JAVA从服务器推送到客户端

我想让客户端通过服务器相互查询而没有延迟(=没有轮询间隔)。 示例:服务器S,客户端A和B. 客户端A想要请求客户端B.客户端A将向服务器S发出请求,没有问题。 然后服务器S需要能够请求客户端B,但如何在没有轮询的情况下执行此操作? 所有node.js / APE(适用于PHP)技术都是为Web设计的,但我没有使用Web服务器。 Java是否有接近推送技术/框架的东西,而不是网络? 我真的更喜欢不需要每个客户端使用自己的保留端口的解决方案(例如,我不希望每个客户端最终使用1个WebService) 注意:所有客户端都在同一台计算机上。

如何在jDBI中进行查询?

如何在jDBI中执行这样的事情? @SqlQuery(“select id from foo where name in “) List getIds(@Bind(“nameList”) List nameList); 表: foo(id int,name varchar) 与myBatis的@SelectProvider类似。 类似的问题已经被问到如何使用JDBI的Sql Object API在运行时创建动态Sql查询? ,但不知何故,答案对我来说并不清楚。

在Eclipse中构建Java之后如何自动导出WAR?

我在Eclipse 3.2中有一个J2EE项目,在每个构建结束时,我想自动创建和部署WAR文件。 目前我必须手动完成这个5或6个鼠标cliks,自动化它会很好。 我知道我可以使用ANT使用自定义构建脚本执行此操作,但我希望使用Eclipse本机解决方案。 我在Eclipse环境中安装了J2EE标准工具(JST)和Web标准工具(WST)插件。

在Java中捕获nullpointerexception

我尝试使用try-catch块来捕获NullPointerException但仍然是以下程序给出错误。 我做错了什么或者是否有其他方法可以在以下程序中捕获NullPointerException 。 任何帮助都非常感谢。 public class Circular_or_not { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { LinkedListNode[] nodes = new LinkedListNode[10]; for (int i = 0; i 0 ? nodes[i – 1] : null); } // Create loop; // nodes[9].next = nodes[3]; Boolean abc= Check_Circular(nodes[0]); […]