为什么池无状态豆?

通常我们将singleton实例用于business / dao层。 在EJB的情况下汇集无状态会话bean的原因是什么?

Java方法引用具有generics参数的方法

我正在尝试对一个方法进行方法引用,该方法具有在类声明中指定的generics参数。 所以我有: public interface IExecutable { void execute(P parameter); } public class Parameter implements IParameter { public void childSpecific() { … } } public class TestClass { … //somewhere in the code public void foo(Parameter parameter) { parameter.childSpecific(); } public void test() { IExecutable executable = this::foo; //compilation error // The type TestClass does not […]

Java Logger未在Netbeans中记录输出

我正在Netbeans中使用Maven开始一个Java项目。 我写了一些代码来使用Logger类进行日志记录。 但是,日志记录似乎不起作用。 在我的程序开始时,我运行: Logger.getLogger(ProjectMainClass.class.getName()).setLevel(LOG_LEVEL); Logger.getLogger(ProjectMainClass.class.getName()).log(LOG_LEVEL, “Hello Logger”); 第二行从不将我的消息输出到Netbeans的输出屏幕。 System.out.print语句确实显示在输出中。 我觉得我需要设置一些配置选项。 我已经四处寻找,但我无法弄明白(过去我总是使用System.out和调试器进行调试,但我认为记录器function更强大(更令人困惑))。

java Web应用程序中的动态URL(如在rails中)

我是一个Ruby on Rails开发人员,用Java编写Web应用程序。 我试图实现类似于Rails中实现的东西。 在Rails中,当Users是Model并且1是特定用户的id时,可以使用localhost:8000\Users\1来调用链接。 我想在Java中得到同样的东西。 我在MVC类型设计中工作,我的JSP页面是视图,我的Servlet是控制器。 我创建了一个名为Users的servlet,它现在呈现users.jsp页面,我可以使用URL localhost:8000\projectName\Users访问该页面,我想将localhost:8000\projectName\Users\1路由到页面user.jsp而适当的Servlet将处理向页面发送正确的用户(id = 1)。 知道我怎么能做到这一点? 我在大学项目中这样做,不允许使用任何框架。 我也宁愿我可以编码而不是安装。

使用STaX解析多个XML片段

我希望以下内容可以在StAX中解析, 但是当你到达第二个元素时它会窒息。 因为没有共同的根元素。 (我不太清楚为什么拉解析器会关心这个特殊问题…无论如何…) 我可以伪造根元素,例如番石榴: InputSupplier join = CharStreams.join( newReaderSupplier(“”), newReaderSupplier(new File(“…”)), newReaderSupplier(“”)); XMLInputFactory xif = XMLInputFactory.newInstance(); XMLStreamReader xsr = xif.createXMLStreamReader(join.getInput()); xsr.nextTag(); // Skip the fake root 所以我的问题是:有没有办法避免这种黑客行为? 一些’片段’模式,我可以把解析器放入?

是否可以使用@NotifyChange而不是BindUtils.postNotifyChange?

我在@NotifyChange和BindUtils.postNotifyChange之间有一个混淆,为什么要使用这两个事件。之前我读过这个问题在ZK中我们可以PostNotifyChange多个变量 。 但是我无法理解这个问题为什么要使用这个多个变量。 这是一个例子: @Command @NotifyChange({ “folderInfoList”, “isDisabled”, “selectedFolderInfo” }) public void refreshFolderInfo() { logger.debug(“Refresh Icon selected”); if (isDirty()) { Messagebox.show(pageResourceBundle.getText(“JS_CONFIRM_DATAMODIFED”), pageResourceBundle.getText(“JS_CONFIRM_DATAMODIFED_TYPE”), Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION, new EventListener() { public void onEvent(Event event) throws Exception { if (Messagebox.ON_OK.equals(event.getName())) { loadFolderInfoList(); selectedFolderInfo = null; BindUtils.postNotifyChange(null, null, FolderInfoEditViewModel.this, “folderInfoList”); } else { } } }); } else […]

JAVA中的Excel到Json转换器

我试图将excel数据转换为JSON格式。 我成功通过读取行​​和列来转换Excel数据并将数据设置为列表,然后将该List转换为JSON格式。 但是,我坚持下一级JSON,格式就像 这是我使用的代码,但尚未开始如何使像3列数据这样的嵌套数据应该像上面的图像一样放在一个数组中。 Pojo类 : public class Products implements Serializable{ @Id @Column(name=”ID”) private String id; @Column(name=”PRODUCTID”) private String productId; @Column(name=”NAMEID”) private String nameId; @Column(name=”NAME”) private String name; @Column(name=”P_DESC”) private String desc; @Column(name=”DIMENSION”) private String dimension; @Column(name=”CATEGORY”) private String category; @Column(name=”SUB_CATEGORY”) private String subcategory; @Column(name=”CATEGORYID”) private String categoryId; @Column(name=”SUBCATEGORYID”) private String subcategoryId; @Column(name=”TAGS”) private String […]

NumberFormat Parse问题

我对将字符串解析为Double时遇到的这种特殊“错误”感到困惑。 我已经设置了NumberFormat属性和符号。 当传递一个15位和2位小数的字符串(例如str = “333333333333333,33” )并用Number num = NumberFormat.parse(str)解析它时,结果省略了一个数字。 num的实际值是3.333333333333333E14 。 它似乎与Strings一起使用所有的1,2和4但是…… 有人可以开导我吗? 干杯恩里科

从xml创建没有架构的Jaxb类

如何创建一个简单的jaxb Java类来表示以下xml 可以有多个myelem ,每个myelem可以包含多个key 我不想使用xsd

基于HADOOP_HOME自动加载HDFS配置?

我正在开发一个Java程序来与已经运行的hadoop集群进行交互。 该程序将HADOOP_HOME作为环境变量传递给它。 基于此值,我需要在开始与HDFS / MapReduce交互之前加载所有必需的配置资源。 我认为我需要的文件基于apache文档 。 我目前的解决方案如下: final String HADOOP_HOME = System.getEnv(“HADOOP_HOME”); Configuration conf = new Configuration(); conf.addResource(new Path(HADOOP_HOME, “src/core/core-default.xml”)); conf.addResource(new Path(HADOOP_HOME, “src/hdfs/hdfs-default.xml”)); conf.addResource(new Path(HADOOP_HOME, “src/mapred/mapred-default.xml”)); conf.addResource(new Path(HADOOP_HOME, “conf/core-site.xml”)); conf.addResource(new Path(HADOOP_HOME, “conf/hdfs-site.xml”)); conf.addResource(new Path(HADOOP_HOME, “conf/mapred-site.xml”)); FileSystem hdfs = new FileSystem(conf); 有更清洁的方法吗? 希望这种方式不涉及明确设置每个资源?