Tag: java ee

Java中现在使用的主要工具/框架是什么?

我是一个转换到Java的.NET / C ++程序员。 我之前曾在大学里接触过10年前的Java。 为了能够用Java编写Web应用程序,需要学习哪些典型的东西? 我能想到:JSP / Servlets Eclipse EJB 这些天人们还用什么? 我们的想法是能够登陆Java项目并使自己变得有用

jax-rs检索表单参数

我正在尝试使用HttpServletRequest检索从已发布表单传递给jax-rs的一些参数。 但是,我的请求对象始终为我的参数返回空值。 我不是以正确的方式去做这件事吗? 我已经发布了下面的代码,以及一个发送的示例请求。 这是我的服务: @Path(“/”) @Stateless public class HomeController { @Context private HttpServletRequest request; @Context private HttpServletResponse response; @EJB private LoginServiceLocal loginService; @POST @Path(“/authenticate”) @Consumes(“application/x-www-form-urlencoded”) public void authenticate() throws Exception { String email = request.getParameter(“email”); String password = request.getParameter(“password”); if (loginService.authenticate(email, password)) { response.sendRedirect(“/app”); } else { request.setAttribute(“authenticationError”, “Invalid email/password.”); } } } 示例请求: […]

Eclipse中缺少Dynamic Web Project选项

Eclipse中新项目的“Dynamic Web Project”选项不会出现在列表中。 此外,“web”文件夹不存在。 我是否错过了安装模块? 我正在运行Eclipse Helios。

web-app_2_5.xsd在eclipse中validationweb.xml时显示错误

我不知道我能做些什么导致这种情况因为我花在编程上的时间已经延长了,而且我已经忘记了我可能做过的事情。 但现在当我加载Eclipse时,它说: The errors below were detected when validating the file “web-app_2_5.xsd” via the file “web.xml”. In most cases these errors can be detected by validating “web-app_2_5.xsd” directly. However it is possible that errors will only occur when web-app_2_5.xsd is validated in the context of web.xml. s4s-elt-character: Non-whitespace characters are not allowed in schema elements […]

如何通过CDI实现命令模式?

我是CDI的新手,有点困惑。 我有以下问题。 我们有课程动作。 我们有包装类,它将所有Action对象保存在hashmap中。 像这样的东西。 class TestAction implements Action{ @EJB private MyBean bean; public void doSomething(){ //here we do something with injected EJB } } class Foo { private HashMap hm; public void execute (String action){ this.hm.get(action).doSomething(); } } 当我不使用CDI时 – 一切都很好。 但我需要使用它。 因此,据我所知,我必须通过cdi容器创建所有操作,否则CDI容器无法将托管bean注入其中。 所以我的问题是什么是通过CDI实现命令模式的最佳方式? 编辑:我读过Dhanji R. Prasanna的dependency injection,Weld-reference(WR),JavaEE7教程(CDI部分) – 不建议阅读最后一篇。 在思考了一点之后,我明白我需要注入HashMap。 此外,我明白我必须使用生产者方法。 好。 我说。 […]

在JTA中使用任意资源

是否可以使用JTA进行任何类型的自定义资源转换? 让我们假设一个基本的例子,并采取一个文件夹创建,如果出现错误应该回滚。 可以处理这样的自定义资源吗?

EJB工厂类

我正在尝试创建一个EJB工厂类,其工作原理如下:您有一个方法,它将EJB的一个类作为参数,然后检查EJB是否具有远程接口(如果不是抛出exception),如果它它会返回相关的EJB。 下面的代码就是这样做的。 但是它返回的对象是相关bean的远程接口的类型,而不是bean本身的类型。 我怎么能改变这个? 有没有办法告诉Javagenerics类型T与传递给方法的类的类型相同。 import java.util.Properties; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.naming.*; public class EJBFactory { private InitialContext ctx; public EJBFactory() throws NamingException { ctx = new InitialContext(); } public EJBFactory(String host, String port) throws NamingException { Properties props = new Properties(); props.setProperty(“org.omg.CORBA.ORBInitialHost”, host); props.setProperty(“org.omg.CORBA.ORBInitialPort”, port); ctx = new InitialContext(props); } . // To […]

如何在Windows Vista命令提示符下检查端口8080?

我是编程和设置Java服务器的新手。 实际上这是我第一次尝试但没有成功。 我将用Java测试我的第一个Web应用程序但是每当我单击Eclipse中的“在调试模式下启动服务器”按钮时,我总是遇到关于我的Tomcat服务器的错误,说我正在使用端口8080。 我想知道如何在控制台中检查它并尽可能地关闭它。 你知道处理这个问题的其他方法吗? 我也试过netstat但是在列表中找不到端口8080。 请帮帮我,因为我真的很沮丧。 我尝试了在谷歌中找到的任何解决方案,但仍然遇到同样的问题。 如果你能向我解释一下会发生什么,那会非常有帮助。 提前致谢。

我了解@ModelAttribute吗?

我需要帮助理解以下来自Spring文档的@ModelAttribute示例:(方法populatePetTypes() ) @Controller @RequestMapping(“/owners/{ownerId}/pets/{petId}/edit”) @SessionAttributes(“pet”) public class EditPetForm { // … @ModelAttribute(“types”) public Collection populatePetTypes() { return this.clinic.getPetTypes(); } @RequestMapping(method = RequestMethod.POST) public String processSubmit( @ModelAttribute(“pet”) Pet pet, BindingResult result, SessionStatus status) { new PetValidator().validate(pet, result); if (result.hasErrors()) { return “petForm”; } else { this.clinic.storePet(pet); status.setComplete(); return “redirect:owner.do?ownerId=” + pet.getOwner().getId(); } } } 我不喜欢这个像我们的Model对象可以在整个当前控制器中获得的额外“值”。 这是真的吗? […]

要求在REQUIRES_NEW内的REQUIRES_NEW内……等等

JBoss 4.x EJB 3.0 我见过如下代码(大大缩写): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) public class EJB1 implements IEJB1 { @EJB private IEJB1 self; @EJB private IEJB2 ejb2; @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public boolean someMethod1() { return someMethod2(); } @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public boolean someMethod2() { return self.someMethod3(); } @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public boolean someMethod3() { return ejb2.someMethod1(); } } 并且说EJB2几乎是EJB1的精确副本(相同的三种方法), EJB2.someMethod3()调用EJB3.someMethod1() ,然后最终在EJB3.someMethod3()写入DB。 这是一个人为的例子,但在我们的代码库中看到了类似的代码。 代码实际上工作得很好。 但是,这感觉就像是一种糟糕的做法,我担心@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)在每个甚至没有实际执行任何数据库写入的方法上。 这是否实际上每次为每个方法调用创建一个新事务,结果为: 新交易 – […]