如何将速度模板加载到EJB中以用作邮件模板

我有一个Java EE 6应用程序,我想在其中使用velocity从模板生成邮件。 我有一个@Named bean,负责加载和填充特定模板。 该项目是一个Web应用程序,所以我将我的模板放入WEB-INF / classes(这看起来相当丑陋,但我现在没有找到更优雅的解决方案)并使用ClasspathResourceLoader来访问文件。 配置如下: Properties props = new Properties(); props.setProperty(“resource.loader”, “class”); props.setProperty(“resource.loader.class”, “org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader”); VelocityEngine engine = new VelocityEngine(props); VelocityContext context = new VelocityContext(); engine.init(); context.put(“myObject”, myObject); Template template = engine.getTemplate(“mail_template.vm”); StringWriter writer = new StringWriter(); template.merge(context, writer); 运行此代码会产生以下exception: Caused by: java.lang.UnsupportedOperationException: Could not retrieve ServletContext from application attributes at org.apache.velocity.runtime.log.ServletLogChute.init(ServletLogChute.java:73) […]

使用Javascript客户端的Thrift Java服务器OutOfMemoryError

我昨天开始学习节俭。 经过大量的努力,我成功地执行了Java教程。 Java服务器和客户端运行正常。 但现在,我想要一个javascript客户端与Java Thrift服务器进行通信。 为此,我将所有js文件移动到js/文件夹中。 并粘贴index.html代码如下: Thrift Javascript Bindings – Tutorial Example //<![CDATA[ $(document).ready(function(){ // remove pseudo child required for valid xhtml strict $("#op").children().remove(); // add operations to it's dropdown menu $.each(Operation, function(key, value) { $('#op').append($("”).attr(“value”,value).text(key)); }); $(‘table.calculator’).attr(‘width’, 500); }); function calc() { var transport = new Thrift.Transport(“http://localhost:9090”); var protocol = new Thrift.Protocol(transport); var […]

Weblogic10.3.0上启用-DuseSunHttpHandler的影响/风险

我正在开发一个通过代理向第三方服务请求的应用程序。 我的应用程序在Weblogic10.3.0上运行,我遇到了BAD_CERTIFICATEexception的问题,如下所示。 javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE – A corrupt or unuseable certificate was received. at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(Unknown Source) at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknown Source) at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown Source) at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown Source) at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown Source) at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Source) at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source) at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source) at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Source) at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source) at com.certicom.tls.record.WriteHandler.write(Unknown Source) at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source) 网上有很多建议说通过添加-DuseSunHttpHandler = true将有助于解决问题,因为第三方已经升级了他们的证书(128位到256位)。 解决方案工作正常,但是,现在的问题是我找不到一篇明确说明Certicom只支持高达128位的官方文章,为了解决它,我们需要启用JSSE,根据我的理解,这是由SunHttpHandler使用。 另一个问题是,“使用SunHttpHandler会产生一些已知的影响吗?” 据我所知,从10.3.3或10.3.5开始,Certicom将被弃用并默认使用JSSE,但目前无法升级weblogic。

如何从WildFly中取消部署所有工件?

我正在开发一个Web应用程序并使用IntelliJ部署到WildFly 10.1。 我最近重命名了我的webapp模块,这导致我的war文件从foo.war重命名为bar.war 。 每次我启动时,都会收到此错误: 12:24:15,899 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit.”foo_war_exploded.war”.STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit.”foo_war_exploded.war”.STRUCTURE: WFLYSRV0153: Failed to process phase STRUCTURE of deployment “foo_war_exploded.war” at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYSRV0160: Failed to mount deployment content at org.jboss.as.server.deployment.module.DeploymentRootMountProcessor.deploy(DeploymentRootMountProcessor.java:95) at […]

如何在每个循环中跳过a的第一次迭代?

编程对我来说是新的,我试图了解一些概念。 我正在尝试创建一个简单的小程序,在地图上显示欧洲的首都城市,使用drawLine方法将它们连接起来。 我遇到了一个问题,我无法成功加入两个省会城市。 我想我理解为什么,但我想不出办法绕过它。 draw方法中的后两个参数与前两个参数相同,但我无法跳过第一次迭代。 这对我来说是全新的,我正试图从书本和网络中学习。 public void paint(Graphics g) { super.paint(g); g.drawImage(image, 0, 0, this); for (Entry entry : map.entrySet()) { g.setColor(Color.BLUE); g.fillOval(entry.getValue().a, entry.getValue().b, 5, 5); g.setColor(Color.BLUE); g.drawString(entry.getKey(), entry.getValue().a+7, entry.getValue().b+7); g.setColor(Color.RED); g.drawLine(entry.getValue().a, entry.getValue().b, 0, 0);//Problem } } 有人可以把我推向正确的方向吗? 我正在考虑使用迭代器而不是每个循环使用迭代器,这是我目前唯一的想法。

Cassandra NoHostAvailableException Java-CQLDriver

我正在使用Cassandra的CQL驱动程序在java中构建应用程序。 当我使用本地cassandra服务器时,我能够正常运行它。 但是,当我尝试运行时,相同的代码不适用于远程cassandra服务器。 初始化期间出现以下错误: – 以下是我用于CQL驱动程序的maven依赖: – com.datastax.cassandra cassandra-driver-core 2.1.3 com.datastax.cassandra cassandra-driver-mapping 2.1.2 以下是错误: – com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: yyyy.yyy.yyy.yyy.yyy-yyy.net/yy.yy.yy.yy:9160 (com.datastax.driver.core.ConnectionException: [yyyy.yyy.yyy.yyy.yyy-yyy.net/yy.yy.yy.yy:9160] Unexpected error during transport initialization (com.datastax.driver.core.ConnectionException: [yyyy.yyy.yyy.yyy.yyy-yyy.net/yy.yy.yy.yy:9160] Operation timed out)), Unexpected error during transport initialization (com.datastax.driver.core.ConnectionException: [xxxx.xxx.xxx.xxx.xxx-xxx.net/xx.xx.xx.xx:9160] Operation timed out))) at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:220) at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:78) at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1231) at com.datastax.driver.core.Cluster.init(Cluster.java:158) at […]

这个我正在制作动画的正方形背后留下了一条痕迹,任何人都可以找出原因吗?

感谢您查看此问题。 我想我只是在挫折中刮伤了我的头骨。 所以我得到的是一个包含’JPanel’的’JFrame’。 ‘JPanel’包含一个小的彩色方块,每当我点击窗口时它应该移动X像素。 好吧,基本上一切都表现得应有,但有一个例外。 当蓝色方块向右移动时,它会在其后面留下其他方块的痕迹。 但是,当我重新调整窗口大小时,小道就会消失。 Catalyst.java package Prototype; import java.awt.*; public class Catalyst { public static void main(String[] args){ World theWorldInstance = new World(“Prototype”, 100,100, 600,100); /*title,xpos,ypos,width,height*/ } } World.java package Prototype; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class World extends JFrame { Level mainPanel; public World(String title, int x, int y, […]

Out Of Memory Tomcat(无法创建新的本机线程)

在给出错误tomcat退出(关闭)之后,我正在为我的tomcat中的一个部署我的应用程序而持续outofmemory错误。 我拿了日志文件,发现了这个 SEVERE: Error allocating socket processor java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) at java.lang.Thread.start(Thread.java:597) at org.apache.tomcat.util.net.JIoEndpoint$Worker.start(JIoEndpoint.java:513) at org.apache.tomcat.util.net.JIoEndpoint.newWorkerThread(JIoEndpoint.java:744) at org.apache.tomcat.util.net.JIoEndpoint.createWorkerThread(JIoEndpoint.java:723) at org.apache.tomcat.util.net.JIoEndpoint.getWorkerThread(JIoEndpoint.java:757) at org.apache.tomcat.util.net.JIoEndpoint.processSocket(JIoEndpoint.java:789) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:355) at java.lang.Thread.run(Thread.java:619) 18 Feb, 2015 5:43:30 PM org.apache.tomcat.util.net.JIoEndpoint createWorkerThread INFO: Maximum number of threads (750) created for connector with address null and port 80 […]

在不使用条件代码的情况下确定数字是奇数还是偶数

如何在不使用Java中的条件或三元运算符的情况下查找数字是奇数还是偶数? 这个问题是我的老师给出的。 他还给我一个暗示,通过使用按位运算符是可能的。

Java自定义记录器:记录标准或/和最佳实践

我正在开发一个框架,我不会尽可能轻量级和独立。 所以我写了我的日志类: import java.util.Date; import java.util.Properties; public class Logger { private static final Logger me = new Logger(); private static boolean info = false; private static boolean debug = false; private static boolean error = false; private static String className = null; public static Logger getInstance(Class clazz) { className = clazz.getCanonicalName(); try { Properties props […]