Tag: java ee

Glassfish 4通过独立应用程序访问EJB

我试图通过JSE Standalone应用程序访问EJB。 在查找过程中找不到JNDI名称时,我一直在苦苦挣扎。 经过一些没有任何解决方案的研究后,我在Glassfish服务器日志中找到一条消息后发现: “[glassfish 4.1] [INFO] [AS-EJB-00054] [javax.enterprise.ejb.container] [tid:_ThreadID = 47 _ThreadName = admin-listener(4)] [timeMillis:1424811833554] [levelValue:800] [ [EJB HelloBean的可移植JNDI名称:java:global / ponteWS / HelloBean!br.com.pontews.HelloRemote,java:global / ponteWS / HelloBean!br.com.pontews.HelloBean]]]“ 我尝试了远程名称和voilá!!! 有用。 我尝试了另一个名字并没有奏效。 以下是问题: 1 – 为什么JNDI名称如此奇怪???? 有什么我可以做的,以避免在bean的名称前面的包名称? 2-直接访问bean而不是HelloRemote接口时得到的错误是什么? 这是HelloRemote: package br.com.pontews; import javax.ejb.Remote; @Remote public interface HelloRemote { public String sayHello(String name); } 这是豆: package br.com.pontews; […]

JSP / Servlet设计问题 – 通过JNDI全局提供请求/响应

在PHP中,总是能够从代码的任何部分访问当前请求或响应。 这个概念是PHP编程的基础。 请求数据,响应数据,会话数据(等)始终存在 ! 这在Java Servlets中不会发生! 为了能够访问代码中的HttpServletRequest,HttpServletResponse,HttpSession(等),您需要将它们作为函数变量传递。 这意味着您无法对本质上“知道”所有这些内容的Web框架进行编码,并消除了传递它们的复杂性。 所以,我设计了这个解决方案: 创建anf注册ServletRequestListener。 requestInitialized事件将当前的HttpServletRequest绑定到JNI上下文,给出当前Thread的名称(Thread.currentThread()。getName()); 在requestDestroyed事件解除绑定上面的JNI资源以进行清理。 这样,可以从代码的任何位置访问当前请求/响应,因为它们始终存在于JNI上下文中,并且可以通过提供当前线程的名称来检索。 所有已知的servlet容器都为每个请求实现单线程模型 ,因此请求无法混淆(当然,不能忘记清理它们)。 此外,每个Web应用程序的JNI资源在默认情况下是分开的 ,因此不存在混淆它们的问题或者可能由访问其他Web请求的Web应用程序引起的安全问题。 有点扭曲,但又好又简单…… 你怎么看?

从AJAX调用异步Servlet

我想要完成的并不是太复杂,但是由于我不精通AJAX,所以我遇到了一些麻烦。 当它实现时,我将有一个JSP,它有一个调用异步Servlet的按钮。 servlet将运行一个长时间运行的任务,并通过在完成部分任务时向表中添加行来向用户提供动态反馈。 在我尝试编写最终版本之前,我正在做一个概念validation,以了解它将如何工作。 但是,我遇到了麻烦。 当我在单击按钮时使用AJAX调用时,该函数在调用常规同步servlet时按预期工作。 但是,只要我使servlet异步,就不会显示更新。 是否有人能够提供一些有关出错的信息? 我的JSP看起来像这样: $(document).ready(function() { $(‘#mybutton’).click(function() { $.get(‘someservlet’, function(responseJson) { $.each(responseJson, function(index, item) { $(”).appendTo(‘#somediv’); $(”).text(item.row1).appendTo(‘#somediv’); $(”).text(item.row2).appendTo(‘#somediv’); $(”).text(item.row3).appendTo(‘#somediv’); $(”).text(item.row4).appendTo(‘#somediv’); }); }); }); }); Click to add things 我的异步Servlet doGet()方法如下所示: response.setContentType(“application/json”); response.setCharacterEncoding(“UTF-8”); final AsyncContext asyncContext = request.startAsync(); final PrintWriter writer = response.getWriter(); asyncContext.setTimeout(10000); asyncContext.start(new Runnable() { @Override public void run() […]

Spring MVC 3.1 RedirectAttributes无效

我正在尝试在Spring MVC 3.1-Release中实现RedirectAttributesfunction 我正在发送简单的表单到Post URL,并希望看到我在重定向中发送的值: 我的控制器看起来像这样: @Controller public class DefaultController { @RequestMapping(value=”/index.html”, method=RequestMethod.GET) public ModelAndView indexView(){ ModelAndView mv = new ModelAndView(“index”); return mv; } @RequestMapping(value=”/greetings.action”, method=RequestMethod.POST) public ModelAndView startTask(@RequestParam(“firstName”) String firstName,RedirectAttributes redirectAttributes){ redirectAttributes.addFlashAttribute(“redirectAttributes.firstName”, firstName); ModelAndView mv = new ModelAndView(new RedirectView(“success.html”)); return mv; } @RequestMapping(value=”/success.html”, method=RequestMethod.GET) public ModelAndView successView(){ ModelAndView mv = new ModelAndView(“success”); return mv; […]

java.lang.IllegalStateException:BindingResult和bean名称’user’的普通目标对象都不可用作请求属性

这些天我开始学习Spring,Iam得到以下exception:我只是想从登录页面导航(稍后将使用DAO在db中插入opeartion)到一些index.jsp页面 exception org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 11 8: 9: 10: 11: 12: 13: 14: Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:424) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) root cause java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name ‘user’ available as request attribute org.springframework.web.servlet.support.BindStatus.(BindStatus.java:141) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:179) org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:199) org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:130) org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120) org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90) org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:103) org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:157) org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:111) org.apache.jsp.login_jsp._jspService(login_jsp.java:71) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) […]

为什么我们不能使用构造函数本身初始化servlet?

为什么我们必须覆盖Servlet中的init()方法,同时我们可以在构造函数中进行初始化并让web容器调用构造函数,同时调用构造函数将ServletConfig引用传递给servlet? Ofcourse容器必须使用reflection,但容器必须使用reflection来调用简单的无参数构造函数

维护行动变量的值?

class SampleAction extends ActionSupport { private Map circleIdNameMap; public String preprocess(){ –logic for populating value of MAP } –getters and setters } 现在我的问题是页面加载我调用preprocess函数并填充Map的值。 在页面提交之后调用另一个方法,在此之后,在一些数据库交互之后,它会重定向到JSP,但这次Map值为空。 我在Struts2中使用这个Map for drop-down标签。 我的preprocess在链接中关联,如: href=”/gma/preprocessConfigureTspThreshold?operatorId=5102&sessionId=12332″‌`​ 因此,只有在第一次单击链接时才会调用preprocess ,之后当我重定向到我的JSP时,因此它不被调用,所以第二次Map值为空。 我应该将地图放在会话中以便保留吗? 或者可以做点什么? 我读过不使用preprocessfunction,使用Preparable接口。 但按照文档: struts 2框架的准备拦截器将始终调用prepare方法 每当为Action类调用任何方法时。 因此,每个方法都会调用它。 我希望只在页面加载时调用preprocess 。

将EAR模块转换为OSGI包的正确方法

有必要将EAR的一部分(即 – war)转换为OSGI包并保持其互操作性。 Glassfish 3.0.1已经有了osgi-web-container模块,我成功地部署了独立的OSGI战争。 但是在前企业战争的情况下,对我来说看起来有点困难。 从未来的OSGI战争中我如何处理EJB调用? 是否足以用真正的JNDI查找替换@EJB注入? 在EAR中共享的API和库怎么样? 我可以拆分并重新安排它们,但是我仍然需要EAR和OSGI战争所需的至少一个jar子。 复制,使其成为OSGI-bundle本身,并以某种方式使其可用于耳朵,放置GF域的库路径? 任何其他想法,可以使混合动力工作的建议?

使用构造函数注入进行Spring Auto Components扫描

我知道如何单独使用Auto Components Scanning和Consctuctor Injection。 http://www.mkyong.com/spring/spring-auto-scanning-components/ http://www.dzone.com/tutorials/java/spring/spring-bean-constructor-injection-1.html 是否可以将AutoComponent Scanning与构造函数注入一起使用? 使用自动组件扫描弹簧框架扫描时,所有类都指向”base-package”并通过调用每个没有参数的构造函数来创建每个类的实例。 让我们说如何修改以下类和相关的spring XML文件。 package com.fb.common; @Repository public class Person { private String name; private int age; public Person(String name, int age){ this.name=name; this.age=age; } public String toString(){ return “Name: “+name+” Age:”+age; } } XML文件 <!– –>

如何在不将完整文件加载到内存的情况下将大文件插入BLOB(Oracle)?

我们在临时文件系统上存储了一个大文件,我需要的是使用BufferedInputStream读取那个巨大的文件(可能是几个或几个演出),如下所示 InputStream is = is = new BufferedInputStream(new FileInputStream(file)); 这将有效地减少读取文件的时间,并希望将文件保存到DB(Oracle)中的BLOB。 这是真正的问题: 我不希望文件被完全读入我的内存,因为我登陆内存不足并想要读取块并将文件内容作为字节数组推送到我的DB BLOB列。 基本上,我的想法是杀死将完整文件加载到内存并实现将文件保存到BLOB(可能附加到现有BLOB内容等)的头顶 有没有办法实现这一目标? PS:我们使用Hibernates来保存BLOB文件