Java EE App的理想错误页面

我很难在我的应用程序中整合错误。 目前,我的error.jsp看起来如下(部分): 除了!之外的所有场景都可以正常工作:有时在我的应用程序中,我使用以下代码捕获MyException类中的内置exception: catch(MyException ex){ log.error(ex.getMessage(), uivex); String originalURL = “/errorpages/error.jsp?errorcode=” + (ex.getMajor() + ex.getMinor()) + “&errormessage=” + ex.getMessage(); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(address); dispatcher.forward(request,response); } 现在的问题是,当我转发到error.jsp页面时…而不是看到来自MyException类的实际错误..我看到NullPointerException因为javax.servlet.error.status_code没有任何内容,并且页面被声明as isErrorPage=”true” 在这种情况下我该怎么办? 一种解决方案是创建一个完全不同的error.jsp(将其命名为error1.jsp)页面,并将MyException类中的exception转发到该页面。 虽然,我想把所有东西放在一个地方。

如何在Spring和EJB中使用相同的事务?

我没有Spring的开发经验,因为我们是一个Java EE商店。 但是,我们正在寻找满足我们在Spring上运行的需求的解决方案,并且应该集成我们现有的Java EE解决方案。 在阅读Spring 3.0.5文档之后,我仍然不确定如何将事务从Spring传播到EJB。 例如,一个Spring bean会创建一个事务,将一些东西保存到一个数据库中,然后将事务移交给我们的一个无状态会话bean,它们(使用JPA)将一些其他东西保存到另一个数据库中。 并且所有这些必须在同一事务下运行,该事务在控件返回到Spring bean时提交。 另外,我不清楚部署:Spring是否在包含会话bean的EAR中作为webapp运行?

请帮助我对Conway的生活游戏的基本java实现

我花了很长时间试图编写一个程序来实现康威的生活游戏 – 链接更多信息。 。 我正在关注一些在线指南,并获得了大部分function。 我写了下面显示的“下一个”和“邻居”方法。 谁能告诉我这些是不是很好的实施,以及它们如何变得更好呢? 练习的目的是不修改或改变任何其他方法,只需编写下一个方法! 🙂 import java.io.*; import java.util.Random; public class Life { private boolean[][] cells; public static void main( String[] args ) { Life generation = new Life( ); for (int i = 0; i != 10; i++) { System.out.println( generation ); generation.next( ); } } // Constructors public void […]

将彩虹颜色映射到RGB

假设我有一个类RainbowColorsMapper和构造函数RainbowColorsMapper(int n) ,其中n> = 2。 现在我希望连续映射彩虹色从红色到紫色,我使用方法mapper.getColor(int number) ,其中低值对应红色端,高值接近n到紫色端。 如果n = 2,则mapper.getColor(0)返回光谱的大部分左侧颜色(接近红色), mapper.getColor(1)返回最正确的颜色。 与自动缩放的较大n相同。 我的问题:这可以相对容易地完成,如果是,那么算法的建议是什么?

无论如何用vim / emacs +命令行取代IntelliJ?

我想用vim(或emacs,如果需要)和命令行工具替换IntelliJ的一些最常用的设置。 我用 自动导入库 通过调试在Jetty中部署各种服务(我经常使用断点) 转到声明,实现和测试。 JavaLint(?)基本上类似于PyFlakes for Java,它显示警告,内联错误 我喜欢IntelliJ,但最近遇到了很多问题,我想念无法使用VIM。

在尝试将大型json数据发送到android中的服务器时出现OutOfMemoryException?

我试图一次发送多个Json字符串[每个1 MB]到PHP Server。 当我试图发送10条记录时,其工作正常。 但如果超过20条记录则会显示OutOfMemoryException 。 我看到android内存大小限制为t0 15MB – 16MB。 但是没有任何线索如何解决这个问题,我使用下面的代码一次发送多条记录。 /** Upload Data*/ private void submitUploadData(String url, Map param) throws IOException { URL siteUrl; try { siteUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) siteUrl .openConnection(); conn.setRequestMethod(“POST”); conn.setDoOutput(true); conn.setDoInput(true); DataOutputStream out = new DataOutputStream(conn.getOutputStream()); String content1 = “”; Set getkey = param.keySet(); Iterator keyIter […]

使用Java和Scribe的Vimeo搜索API

在它的API Vimeo工程师声称我们应该能够在没有访问令牌的情况下进行搜索,我花了好几个小时而不幸的是无法让它工作,我不确定我做错了什么,所以如果你做的话请帮忙这之前。 OAuthService service = new ServiceBuilder().provider(VimeoApi.class).apiKey(consumerString).apiSecret(consumerSecret).build(); OAuthRequest myrequest = new OAuthRequest(Verb.GET,”http://vimeo.com/api/rest/v2format=json&method=vimeo.videos.search&query=fun”); Token mytoken = new Token(“”, consumerSecret); service.signRequest(mytoken, myrequest); Response response = myrequest.send(); 谢谢

是否可以逐步使用iText RTF(Java库)刷新输出? (outofmemory错误)

我正在使用iText创建一个RTF文档。 完成后它将有几百页。 但是,当它完成将所有各种段落和表添加到文档中时,我不断收到一个内存错误,并且它正在尝试实际创建RTF文件(使用document.close();) 我用-Xmx350m增加了运行时内存,但由于用户计算机没有那么多内存,所以不再增加它。 有没有办法逐步写入RTF文档,而不是最后一个巨大的块?

IntelliJ结构搜索和替换问题

有没有一种简单的方法来捕捉类型? 我似乎无法做基本的事情,比如并用变量表达式,比如$mapType$$mapEnd$做一个简单的替换。 这可能有什么原因吗? 也就是说,如果我有一个表达式,比如.*\s*.*abc ,我把它分成两个变量, .*\s*和.*abc ,表达式与任何文本都不匹配。 怎么可能出错? Example template: $var1$ = $impl$ Example second template: $var1$ = $type$$implEnd$ 如果$impl$是一个完整的正则表达式,将$type$和$implEnd$与一半匹配的正则表达式放在一起会导致模式不匹配。 怎么可能出错? 我正在尝试进行这种转变: List list = new ArrayList(); List list = Lists.newArrayList(); 显然,我需要以某种方式捕获“数组”,以及只有那些没有参数的类型。

JDT – 尝试更改Type的超类。 我不知道超级class的合格名称

我有一个程序,除了其他任务之外,还必须使用JDT更改某些类的超类。 我有两个字符串,其中包含要交换的超类的限定名称,例如“org.example.John”和“org.example.Smith”,我正在解析整个AST搜索扩展这些类的类。 当我试图找出超类的限定名称时,我的问题就出现了。 我找不到办法。 给定一个ICompilationUnit (表示一个类),我使用一个ASTVisitor来解析TypeDeclaration,如下面的方法所示。 public boolean visit(TypeDeclaration typeDeclaration) { TypeDeclaration[] types = typeDeclaration.getTypes(); superClass = typeDeclaration.getSuperclassType(); superClass.getNodeType(); Class nodeType = ASTNode.nodeClassForType(superClass.getNodeType()); if (newSuperClass != null) { Name oldName = typeDeclaration.getAST().newName(oldSuperClass); SimpleType oldType = typeDeclaration.getAST().newSimpleType(oldName); Name newName = typeDeclaration.getAST().newName(newSuperClass); SimpleType newType = typeDeclaration.getAST().newSimpleType(newName); if (superClass != null && superClass.equals(oldType)) { typeDeclaration.setSuperclassType(newType); } } return […]