Tag: glassfish

JSP / GlassFish:如何正确设置UTF-8编码

我正在寻求帮助,以便将堆叠中的所有图层转换为UTF-8编码。 我找到了这篇好文章: http://www.javapractices.com/topic/TopicAction.do?Id=206 描述我需要担心编码的3个地方。 由于我的(1)Oracle数据库当前设置为UTF-8,因此需要担心(2)浏览器和(3)服务器。 我也发现了这篇详细的文章 http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest 我正在尝试遵循以下内容,但有一些关于实现的新手问题。 为了解决浏览器问题,我确保在每个JSP页面的顶部包含以下内容: (供参考,见此处 )。 为了解决服务器问题,我确保在发出request.getParameter()或request.getAttribute()语句之前在Java servlet和JSP页面中包含以下行: request.setCharacterEncoding(“UTF-8”); 由于我使用的是GlassFish 3.1.2,我知道它默认不使用UTF-8,因此我需要以某种方式手动设置它。 我见过很多网站都在谈论一个名为glassfish-web.xml的文件。 这是普通glassfish的一部分吗? 我不知道在哪里找到它。 我一直在WEB-INF文件夹中使用web.xml文件作为我的Web应用程序。 有人可以帮我弄清楚我是否需​​要修改这个web.xml文件,或者我是否需要找到或创建一个名为glassfish-web.xml的新文件来配置glassfish的编码? 我的web.xml文件以: … 对于JSP / servlet请求,我在web.xml文件中包含以下行 可以放入web.xml文件吗? 或者,它是否需要进入一些glassfish-web.xml文件? 对于JSP / servlet响应,我将以下内容放在我的web.xml文件中(请参阅此处接受的答案): *.jsp UTF-8 我假设这些行只是在和之间插入。 但是,让我知道他们是否应该进入其他描述符(例如和 )? 我还在JSP 部分中添加了以下内容: 有用的参考: 如何摆脱警告:PWC4011:无法将请求字符编码设置为UTF-8 https://stackoverflow.com/tags/servlet-filters/info https://wikis.oracle.com/display/GlassFish/FaqHttpRequestParameterEncoding

绑定用户实体和GlassFish Principal

我有一个实体类User ,其中包含用户名,名字,姓氏和密码等信息,我有我的GlassFish 3.1服务器设置来执行身份validation。 到现在为止还挺好。 在容器validation用户之后,我需要一些方法将主体绑定到实际的User实体。 毕竟,GlassFish告诉我用户“laurens”已经过身份validation,它没有给我相应的User实体。 为此,我编写了一个JSF托管bean UserController 。 我想知道的是,如果这是查看实际实体的正确方法,如果有任何明显的陷阱,我没有看到。 UserController具有以下字段: @EJB private UserFacade userFacade; private User user; userFacade是一个无状态会话bean,用于持久化并查找User实例。 JSF页面使用user字段来获取和设置用户的属性。 我使用以下方法执行绑定,并伴有两个辅助方法: @PostConstruct private void init() { try { user = userFacade.find(getUserPrincipal().getName()); } catch (NullPointerException ex) { // Intentionally left empty — User is not logged in. } } private HttpServletRequest getHttpServletRequest() { return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); […]

握手期间的WebSocket错误意外的代码200

我一直在使用Glassfish 4作为我的服务器。 我正在使用以下语句打开WebSocket连接: webSocket = new WebSocket(link); 哪里: link = ‘ws://localhost:8080/CollabEdit/Document/file333B1CDF85-DDDC-E411-8299-F82FA8BE8622’; 在服务器文件中: @ServerEndpoint(value=”/file333B1CDF85-DDDC-E411-8299-F82FA8BE8622″, encoders = {MessageEncoder.class}, decoders = {MessageDecoder.class}) 实际上,我一直在使用URL映射,这个“ file333B1CDF85-DDDC-E411-8299-F82FA8BE8622 ”实际上是针对用户的,但是在后端,控件位于“ main.jsp ”文件中。 在执行期间,生成的错误是: WebSocket connection to ‘ws://localhost:8080/CollabEdit/Document/file333B1CDF85-DDDC-E411-8299-F82FA8BE8622’ failed: Error during WebSocket handshake: Unexpected response code: 200 GlassFish服务器中的exceptionStackTrace : SEVERE: WebModule[/CollabEdit]Exception starting filter WebSocket filter java.lang.InstantiationException at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:135) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:5297) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5909) at com.sun.enterprise.web.WebModule.start(WebModule.java:691) […]

JSR-353如何使用javax.json.JsonObjectBuilder添加空值

由于javax.json文档建议创建JsonObject的方法是使用提供的构建器,如: JsonBuilderFactory factory = Json.createBuilderFactory(config); JsonObject value = factory.createObjectBuilder() .add(“firstName”, “John”) .add(“lastName”, “Smith”) .add(“age”, 25) .add(“address”, factory.createObjectBuilder() .add(“streetAddress”, “21 2nd Street”) .add(“city”, “New York”) .add(“state”, “NY”) .add(“postalCode”, “10021”)) .add(“phoneNumber”, factory.createArrayBuilder() .add(factory.createObjectBuilder() .add(“type”, “home”) .add(“number”, “212 555-1234”)) .add(factory.createObjectBuilder() .add(“type”, “fax”) .add(“number”, “646 555-4567”))) .build(); 此示例添加了给定键的值。 在现实生活中,这些值可能来自某些(pojo)域对象,如: JsonBuilderFactory factory = Json.createBuilderFactory(config); JsonObject value = factory.createObjectBuilder() .add(“firstname”, customer.getFirstame()) […]

确保已成功部署服务,并且服务器已运行

我创建新的Java Web应用程序,向项目添加Web服务。 在进行清理,构建和部署之后,我在没有编辑项目的情况下测试Web服务,我看到此错误消息“确保服务已成功部署,服务器已运行”。 为什么我可能会收到错误消息。 项目目录的图像。 package Service; import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.WebParam; /** * * @author seref */ @WebService(serviceName = “NewWebService”) public class NewWebService { /** * This is a sample web service operation */ @WebMethod(operationName = “hello”) public String hello(@WebParam(name = “name”) String txt) { return “Hello ” + txt + ” !”; […]

运行时期间使用Metro / JAX-WS / WSIT的WSDL请求

在运行时,JAX-WS获取SOAP端点的WSDL,即使它已经在IDE中运行了wsimport。 此行为如下所示: http : //jax-ws.java.net/faq/index.html#wsdl_at_runtime 客户端在运行时可以检索的元数据量是否有限制? 如果是这样,有没有办法增加这个限制? 请注意,我不是指在IDE中运行wsimport; 工作正常。 我特别谈到在运行时获取WSDL元数据。

如何将EJB模块从Netbeans部署到Glassfish

如何从EJB module将Netbeans @Stateless和@Remote EJB部署到Glassfish? Netbeans能够这样做,但是如何在IDE之外完成? 服务器日志: thufir@dur:~$ thufir@dur:~$ tail glassfish-4.1/glassfish/domains/domain1/logs/server.log -n 34 at java.lang.Thread.run(Thread.java:744) ]] [2014-09-22T01:41:57.266-0700] [glassfish 4.1] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=42 _ThreadName=admin-listener(5)] [timeMillis: 1411375317266] [levelValue: 1000] [[ Exception while deploying the app [HelloEJB] : Invalid ejb jar [HelloEJB]: it contains zero ejb. Note: 1. A valid ejb jar requires at least one session, […]

Glassfish:在部署期间修改EAR的部署描述符

经过几天的搜索,尝试和头撞,我把这个问题发布到了SO虽然似乎已经回答了。 这是场景:我有一个EAR应用程序,包含(目前)一个WAR和一个EJB模块。 EJB模块使用JPA(persistence.xml),一些无状态会话Bean通过Web服务公开。 Web服务使用带有jdbc领域的基本身份validation。 Web模块使用具有相同领域的表单身份validation。 要求 :我需要能够在不同的服务器(dev / test / prod)上或在具有不同部署描述符的同一服务器(或集群)上部署此应用程序。 每个应用程序实例中需要不同的部署设置是: persistence.xml中的jta-data-source web.xml中的域名 web.xml中的javax.faces.PROJECT_STAGE glassfish-ejb-jar.xml中的webservice-endpoint \ endpoint-address-uri和login-config \ realm application.xml中的context-root(如果它有任何不同,我可以将它移动到web.xml,见下文) glassfish-application.xml中的领域 在我的研究期间,我管理了以下内容: 我可以使用asadmin set-web-context-param覆盖javax.faces.PROJECT_STAGE 我可以在asadmin deploy期间使用部署计划覆盖glassfish-ejb-jar.xml中的所有设置 这同样适用于glassfish-application.xml 我可以在asadmin deploy期间覆盖context-root(我不知道它如何在EAR中使用多个Web模块) 到现在为止还挺好。 这让我有以下问题: 如何轻松修改web.xml中的域名? 如何在persistence.xml中轻松修改jta-data-source? 我的意思是在部署期间或使用类似于部署计划jar的东西。 仅使用修改后的.xml文件维护ejb.jar或war的多个副本不是一种选择。 需要明确的是,需要使用相同的应用程序来建立不同的数据库(在开发的不同阶段或不同的客户)。 该应用程序使用一个持久性单元,但它需要指向不同的数据库(因此jta-data-source)。 领域是一个jdbc领域(在同一个数据库上),每个应用程序实例也需要不同。 任何帮助或指针将不胜感激。

适用于企业应用程序的瘦(ner)独立客户端

首先是一点背景 : 我正在使用EJB模块和Application Client模块处理企业应用程序(ear)。 我还使用hibernate JPA进行持久化,使用swingx进行GUI。 这是唯一的第三方atm。 此应用程序部署在Glassfish上。 一切进展顺利,直到我第一次部署我的应用程序并尝试通过Java Web Start启动它。 我遇到了主要的拦路保护程序–JWS不喜欢hibernate3.jar,抱怨它没有签名,尽管它已经签署了。 如果你有兴趣,我在这里描述了这个问题。 无论如何,它可能与JVM中这个未解决的错误有关。 关于JWS还有其他一些我不喜欢的事情,但现在并不重要。 目前的方法 鉴于这个问题我想我自己部署了应用程序(我计划编写某种自动更新程序以保持所有内容同步)。 所以我按照这里的说明一切都很酷,除了我需要部署到客户端的应用程序容器大约40 MB! 。 这太过分了! 好的,所以我说我将删除应用程序容器,创建一个独立的客户端通过JNDI进行EJB查找并仅包含最小值。 在这里,我被困住了! 这是我使用的JNDI查找: Properties prop = new Properties(); prop.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.enterprise.naming.SerialInitContextFactory”); prop.put(“org.omg.CORBA.ORBInitialHost”, “bogdan-pc”); prop.put(“org.omg.CORBA.ORBInitialPort”, “3700”); try { InitialContext ctx = new InitialContext(prop); DatabaseCacheEJBRemote service = (DatabaseCacheEJBRemote) ctx.lookup(“ejbs.DatabaseCacheEJBRemote”); System.out.println(“count: ” + service.getProductionCount()); } catch (NamingException ex) […]

Ajax渲染属性不起作用啊:JSF2中的dataTable

我在JSF 2.0中使用一个简单的应用程序有一些问题。 我尝试使用ajax支持构建ToDo列表。 我有一些todo字符串,我使用数据表显示。 在这个数据表中,我有一个commandLink来删除任务。 现在的问题是数据表不会被重新渲染。 谢谢你的帮助。 编辑(TodoController): @ManagedBean @SessionScoped public class TodoController { private String todoStr; private ArrayList todos; public TodoController() { todoStr=””; todos = new ArrayList(); } public void addTodo() { todos.add(todoStr); } public void removeTodo(String deleteTodo) { todos.remove(deleteTodo); } /* getter / setter */ }