如何在java中实现chrome本机消息传递消息处理协议

我尝试在java中实现本机消息传递协议,但它不起作用。 我尝试了以下方式。 private String readMessage() { int length = getInt(getLength()); ByteArrayOutputStream bOut = new ByteArrayOutputStream(); byte[] b = new byte[4]; try { int total; for(int totalRead = 0 ; totalRead < length ; totalRead = totalRead + 4){ System.in.read(b); // make sure bOut.write(b); } } catch (IOException e) { e.printStackTrace(); } String bRes = null; […]

Java xPath – 从XML提取子文档

我有一个XML文档如下: … 我想从中提取DocumentBody元素的内容为String,原始XML文档: 使用xPath,它可以很简单: /DocumentWrapper/DocumentBody Unfrotunatelly,我的Java代码不想按我的意愿工作。 它返回空行而不是预期结果。 有没有机会这样做,或者我必须返回NodeList然后从中生成xml文档? 我的Java代码: XPathFactory xPathFactoryXPathFactory.newInstance(); XPath xPath xPathFactory.newXPath(); XPathExpression xPath.compile(xPathQuery); String result = expression.evaluate(xmlDocument);

加载DOM库时log4j中的冲突? (不允许在classpath中实现dom的其他实现?)

我试图将log4j放在Tomcat 7中的Web应用程序中。 我在我的Web应用程序的WEB-INF\lib中有log4j库。 我在WEB-INF\classes下面有以下log4j.xml 我在例如我知道正在加载的servlet或filter中进行登录但是我无法在任何地方看到输出日志。 例如 Logger log = Logger.getLogger(MyFilter.class); 在doFilter我记录了log.debug(“logging information); log.error(“logging information); 作为控制台appender的结果,我无法在Tomcat控制台中看到输出,也没有看到myLogfile.log创建。 我不确定这个文件应该在哪里创建。 我只看到来自servlet和filter的System.out语句。 我在这做错了什么? 更新: 我在类路径xercesImpl.jar和jaxb-impl.jar 。 这会导致问题吗? 我注意到我之前在Tomcat控制台中错过了以下exception: log4j:WARN在java的java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)的java.lang.ClassLoader.defineClass1(本地方法)中的默认初始化java.lang.NoClassDefFoundError:org / w3c / dom / ElementTraversal期间出错。位于org.apache的org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2823)的java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)中的lang.ClassLoader.defineClass(ClassLoader.java:615) .appalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1655)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java) :1533)位于org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity的org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(未知来源)的org.apache.xerces.parsers.AbstractDOMParser.startDocument(未知来源)(未知来源)org.apache.xerces.impl.XMLVersionDetector.startDocume 来自org.apache.xerces.parsers.XMLParser.parse的org.apache.xerces.parsers.XML11Configuration.parse(未知来源)的org.apache.xerces.parsers.XML11Configuration.parse(未知来源)的ntParsing(未知来源)(位于org.apache.jache上的org.apache.xerces.parsers.DOMParser.parse(未知来源)org.apache.log4j.xml.DOMConfigurator $ 2.parse(DOMConfigurator)中的未知来源.java:767)org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:866)org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:773)org.apache.log4j。 org.apache.log4j.LogManager。(LogManager.java:127)的helpers.OptionConverter.selectAndConfigure(OptionConverter.java:483)位于com.test的org.apache.log4j.Logger.getLogger(Logger.java:117)。 MyFilter。(MyFilter.java:26)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)at sun.re flect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27),位于java.lang.Class的java.lang.Class.newInstance(Class.java:355)java.lang.reflect.Constructor.newInstance(Constructor.java:513) org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:125)中的.newInstance(Class.java:308)org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:256)at org。位于org.apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.java:103)的apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)位于org.apache.catalina.core.StandardContext.filterStart(StandardContext.java) :4624)org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5281)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)org.apache.catalina.core。 ContainerBase.addChildInternal(ContainerBase.java:866)位于org.apache.catalina.core.ContainerBase。 addgild(ContainerBase.java:842)位于org.apache的org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095) .catalina.startup.HostConfig $ DeployDirectory.run(HostConfig.java:1617)java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:441)at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask) […]

从java transient或@Transient注释隐藏JSON序列化属性的最佳方法?

在Spring中,ExtJs应用程序我使用JSON序列化java对象。 当我想从JSON中排除属性时,我使用@Transient注释。 我看到java transient关键字也适用于此。 我想知道哪些在性能视角和安全性方面最好,更有效。

没有struts标签的struts 2文件上传

我是否需要使用struts标签 使用struts 2提供的文件上传function? 没有struts 2标签,我可以实现相同的function吗? 如果是,我是否可以知道需要将约定纳入操作或配置文件中以实现相同的目的?

MongoTemplate聚合 – 按日期分组

我正在尝试使用mongotemplate创建聚合查询,其中按日期(即2016-03-01)而不是datetime(即2016-03-01 16:40:12)进行分组。 dateToString操作存在于mongodb文档中,它可用于使用格式化从日期时间中提取日期: https : //docs.mongodb.org/manual/reference/operator/aggregation/dateToString/但我得到了它可以使用它mongotemplate – 我得到一个NullPointerException。 (我的db版本是3.2) List aggregationOperations = new ArrayList(); aggregationOperations.add( Aggregation.project(“blabla”, …). andExpression(“dateToString(‘%Y-%m-%d’,timeCreated).as(“date”)); aggregationOperations.add(Aggregation.group(“date”).sum(“blabla”).as(“blabla”)); AggregationResults aggregationResults = this.mongoTemplate.aggregate( Aggregation.newAggregation(aggregationOperations), collectionName, resultClass); 当我使用dayOfMonth(timeCreated)来提取日期时,没有例外,但是我找不到如何使用dateToString进行此操作的示例。 我尝试没有”作为日期格式,它也没有工作…… 这是我得到的例外: java.lang.NullPointerException at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:226) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255) at org.bson.BasicBSONEncoder.putIterable(BasicBSONEncoder.java:324) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:263) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:136) at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:36) at […]

QuadBounds使用itext或pdfbox订购PdfAnnotation标记

0 1 2 3 * (x1,y1) *************** (x2,y2) * * * * * * * 4 5 * * 6 7 * (x3,y3) *************** (x4,y4) 对于PdfAnnotation或PDFAnnotation的float数组,这是正确的顺序吗? 我尝试创建一个pdf注释,但注释是凹的而不是像通常使用adobe reader或acrobat创建的那样。

Commons Net FTPClient与Mule无限期挂起

我遇到了Mule ESB FTP传输的问题:轮询时,运行客户端的线程将无限期挂起而不会抛出错误。 这会导致FTP轮询完全停止。 Mule使用Apache Commons Net FTPClient。 进一步研究代码,我认为这是由FTPClient的SocketTimeout没有设置引起的,有时候在从FTPClient的套接字读取行时会导致无限挂起。 当问题发生时,我们可以清楚地看到用jstack检索到的这些堆栈中的问题。 __getReply()函数似乎是问题的更直接链接。 这个在创建新的FTPClient时挂在connect()调用上: receiver.172 prio=10 tid=0x00007f23e43c8800 nid=0x2d5 runnable [0x00007f24c32f1000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) at java.net.SocketInputStream.read(SocketInputStream.java:122) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) – locked (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) – locked (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:382) at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294) at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:364) at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:540) […]

使用JPMML评估SAS生成的PMML文件时出现FMTWIDTH错误

我有一个从SAS Miner生成的PMML,我无法使用JPMML 1.1.4正确评估。 JPMML 1.1.4表示它支持PMML 4.2,而PMML表示它是PMML版本4.2。 下面的FMTWIDTHfunction是“SAS-EM-String-Normalize”正确的PMML语法吗? 任何想法为什么我不能使用JPMML评估此function? 我的TransformationDictionary中的函数看起来像, 1 FMTWIDTH 我得到以下exception, 线程“main”org.jpmml.evaluator.TypeCheckException中的exception:期望的INTEGER,但在org.jpmml.evaluator.FunctionRegistry $ 36的org.jpmml.evaluator.FieldValue.asInteger(FieldValue.java:125)获得STRING(FMTWIDTH)。评估(FunctionRegistry.java:463)org.jpmml.evaluator.FunctionUtil.evaluate(FunctionUtil.java:38)org.jpmml.evaluator.ExpressionUtil.evaluateApply(ExpressionUtil.java:203)atg.jpmml.evaluator.ExpressionUtil 。在org.jpmml.evaluator.FunctionUtil.evaluate(FunctionUtil.java:76)的org.jpmml.evaluator上的org.jpmml.evaluator.FunctionUtil.evaluate(FunctionUtil.java:76)中评估(ExpressionUtil.java:91)。 ExpressionUtil.evaluateApply(ExpressionUtil.java:203)位于org.jpmml.evaluator上org.jpmml.evaluator.ExpressionUtil.evaluateApply(ExpressionUtil.java:188)的org.jpmml.evaluator.ExpressionUtil.evaluate(ExpressionUtil.java:91) org.jpmml.evaluator.Expres上的org.jpmml.evaluator.ExpressionUtil.evaluate(ExpressionUtil.java:58)中的.ExpressionUtil.evaluate(ExpressionUtil.java:91) org.jpmml.evaluator上的org.jpmml.evaluator.ExpressionUtil.evaluateMapValues(ExpressionUtil.java:169)中的org.jpmml.evaluator.ExpressionUtil.evaluate(ExpressionUtil.java:87)中的sionUtil.evaluate(ExpressionUtil.java:45)位于org.jpmml的org.jpmml.evaluator.RegressionModelEvaluator.evaluateRegressionTable(RegressionModelEvaluator.java:150)org.jpmml.evaluator.ExpressionUtil.evaluate(ExpressionUtil.java:45)的.ExpressionUtil.evaluate(ExpressionUtil.java:58)。评估者.RegressionModelEvaluator.evaluateClassification(RegressionModelEvaluator.java:107)atg.jpmml.evaluator.RegressionModelEvaluator.evaluate(RegressionModelEvaluator.java:57)atg.jpmml.evaluator.ModelEvaluator.evaluate(ModelEvaluator.java:65)at ValidPMMLTesterRandomScores.randomEvaluation ValidPMMLTesterRandomSc的ValidPMMLTesterRandomScores.readModelFromFile(ValidPMMLTesterRandomScores.java:142)上的ValidPMMLTesterRandomScores.printModelInformation(ValidPMMLTesterRandomScores.java:94)中的(ValidPMMLTesterRandomScores.java:116) ores.main(ValidPMMLTesterRandomScores.java:160)

关于java列表的问题删除

List的方法public boolean remove(Object o)从List删除一个对象,但不会移动后面的元素。只能使对象值为空。 恕我直言,这是一个不直观的设计选择,因为删除前后列表的大小保持不变。 是否有一种优雅的方法来获取一个包含元素的列表? 谢谢