Tag: web applications

如何从Java客户端获取uuid或mac地址?

我正在寻找基于Java的Web应用程序的解决方案来唯一地识别客户端。 服务器与客户端在同一网络中,我认为使用MAC地址将是一个很好的解决方案。 问题是我不能使用cookie,因为它们可以被客户端删除,我不能使用IP,因为他们可以发布新的DHCP租约续订。 所以我想回退到客户端的MAC地址。 我知道没有java内置function来获取MAC地址。 是否有可以处理每个操作系统输出的库? (主Windows和Mac),因为我的Java应用程序在两个平台上运行。 或者是否有任何其他建议来唯一识别网站和HTTP协议中的客户端? (也许HTML5数据存储或其他) 我正在使用Java 1.7顺便说一句。 我不会强迫用户登录或以其他方式识别自己,我不会为客户端智能手机编写本机应用程序。

如何在不同的临时环境中维护java webapps?

您可能拥有一组在开发人员计算机上使用的属性,这些属性因开发人员而异,另一组用于登台环境,而另一组用于生产环境。 在Spring应用程序中,您可能还有要在本地环境中加载但不在生产环境中加载的bean,反之亦然。 你怎么处理这个? 您是使用单独的文件,ant / maven资源过滤还是其他方法?

当数据正确显示时,为什么我在Spring MVC Web应用程序中获得Hibernate LazyInitializationException?

我正在尝试使用Spring MVC创建一个Web应用程序,将Hibernate作为其ORM层。 但是,由于我对这两个框架缺乏经验,我正在努力。 以下代码将正确显示我正在查找的所有记录,但仍会将堆栈跟踪放入我的日志中。 我无法找到有关集成Hibernate和SpringMVC的详细文档(我查看了springsource.org并阅读了关于interweb的各种文章)。 谁能指出我在这里做错了什么? 请注意,我花了一些时间试图在互联网上找到答案,包括查看这个问题。 遗憾的是没有帮助。 我还应该注意,此应用程序的ORM部分已在独立的Java应用程序中使用和测试,没有任何问题。 所以我认为Spring MVC和Hibernate的集成导致了这个问题。 这是具有着名的延迟初始化问题的堆栈跟踪(截断); 2009-03-10 12:14:50,353 [http-8084-6] ERROR org.hibernate.LazyInitializationException.(LazyInitializationException.java:19) – could not initialize proxy – no Session org.hibernate.LazyInitializationException: could not initialize proxy – no Session at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150) at com.generic.orm.generated.SearchRule$$EnhancerByCGLIB$$92abaed6.toString() at java.lang.String.valueOf(String.java:2827) at java.lang.StringBuffer.append(StringBuffer.java:219) at org.apache.commons.lang.builder.ToStringStyle.appendDetail(ToStringStyle.java:578) at org.apache.commons.lang.builder.ToStringStyle.appendInternal(ToStringStyle.java:542) at org.apache.commons.lang.builder.ToStringStyle.append(ToStringStyle.java:428) at org.apache.commons.lang.builder.ToStringBuilder.append(ToStringBuilder.java:840) at org.apache.commons.lang.builder.ReflectionToStringBuilder.appendFieldsIn(ReflectionToStringBuilder.java:606) […]

重型AJAX Java应用程序的最佳服务器端框架

有数以万计的Java Web应用程序框架。 95%是在现代基于AJAX / DHTML的开发之前设计的,这意味着这些新方法是嫁接而不是设计的。 是否有任何框架从头开始构建,例如GWT + Extjs ? 如果没有,哪个框架已经适应了具有动态数量的字段和页面的forms世界,这些字体和页面会变形为客户端?

什么是优秀的可嵌入Java LDAP服务器?

我正在开发一个Java Web应用程序,它与其他一些部署的外部应用程序集成在一起。 身份validation信息必须跨所有内容同步,其他应用程序需要针对LDAP进行身份validation。 该应用程序将部署在没有其他LDAP服务器可供使用的环境中; 我必须提供它。 到目前为止,我的解决方案是将Penrose Server用作独立应用程序,我将其设置为检查主应用程序数据库中的表并基于此发布LDAP。 它运行良好,但有一些东西可以嵌入到主应用程序本身以简化部署,这将是很好的。 看起来Penrose可以嵌入,但文档可能有点不稳定或过时(虽然它似乎是积极开发的)。 它可能是一个可接受的解决方案,但如果有另一个已知在嵌入式配置中运行良好的我可能想要检查它。 我也担心Penrose的GPL问题。 我不能自由地向GPL申请该应用程序的源代码。 我不相信这是独立运行它的问题,但嵌入它可能是不 – 没有…任何人都知道吗? 许可许可证是好的,以避免这些问题。 要求: LDAP v3 必须能够在运行时更新目录内容,无论是以编程方式还是通过其他方式,如Penrose与数据库同步 易于配置(在部署时无需为应用程序提供额外配置) 到目前为止,我简要地看了一下似乎可以嵌入的ApacheDS和OpenDS 。 有没有人有这种经历?

编码/混淆HTTP参数

我们目前正在开发一个非常简单的Web应用程序,我们希望“混淆” (什么是正确的术语?)或以某种方式编码请求参数,这样我们就可以减少空闲用户发送任意数据的机会。 例如,url看起来像/webapp?user=Oscar&count=3 我们想要像/webapp?data=EDZhjgzzkjhGZKJHGZIUYZT并在服务器中使用真实的请求信息解码该值。 在我自己实现这样的事情之前(并且可能做错了)我想知道是否有什么事情可以做到这一点? 我们在服务器上有Java,在客户端上有JavaScript。

在Jersey webapp启动时初始化数据库

我读过这个,但我不太明白它是如何工作的。 我想在我的Web应用程序启动时加载属性文件并设置我的连接池。 显然我只想在一个地方做一次,所以如果需要我可以改变它。 使用常规servlet,我只需将初始化代码放在servlet的init()方法中,但是您无法使用Jersey servlet访问它。 那我该怎么办? 上面链接中的听众如何工作?

适用于多个Java Web应用程序的自动部署解决方案

我正在寻找可以管理多个相互依赖的Java Web应用程序部署的解决方案,最好是开源。 该解决方案需要能够创建和存储包含多个项目的发布规范,以用于每个应用程序的特定版本以及相关的其他工件(数据库配置,apache配置等)。 然后需要解析规范,然后需要在目标环境中部署/执行每个项目。 目标环境是基于linux的。 Web应用程序是在j2ee标准应用服务器上运行的香草战争。 要问很多? 目前我认为所有的位都已到位 – 二进制工件随maven发布插件一起发布 ,因此可以从我们的maven repo中进行部署, 数据库使用dbdeploy进行版本化, apache配置在svn中进行版本控制。 但是,我不知道任何可以将所有这些步骤放在多个应用程序上的工具。 我目前首选的方法是使用hudson的参数化构建forms来创建规范。 然后是第二个参数化构建,以选择预先创建的规范并在选定的环境中部署/执行它。 然而,这似乎是很多工作和不太理想的自定义解决方案。 任何人都知道任何预建的更好的想法吗? 或建议如何处理这个 – 也许工作流引擎会比哈德森更好? 也许是自定义网络应用程序 笔记: 目标环境预先构建了所有需求 – 例如安装了Java和app服务器,运行数据库等。这不是环境配置问题,而是更多的部署问题。 自动部署单个应用程序是许多解决方案的问题,例如货物,ant部署脚本等。但是我需要能够包装多个部署的东西。 例如,在多个应用程序的特定版本及其要求下启动货物。

Tomcat:调整内存比例

我有一个运行在Windows 2008 Server上的Tomcat实例,内存为4GB。 服务器专用于这一个应用程序,所以我非常希望能够将大部分RAM专用于Tomcat。 我的Tomcat设置目前有以下java选项: -Xms256m -Xmx1600m 我想增加RAM的数量,最好是大约3GB(显然我知道怎么做,只需增加-Xmx值)。 但是,如果我将最大堆空间增加到1600MB以上,Tomcat就会拒绝启动。 我读过的几个网站都说Tomcat不能使用超过40%的可用RAM,这看起来与我所看到的一致。 有没有办法增加Tomcat可以使用的内存比例 ,这样我可以增加Tomcat可以使用的内存量 ? 谢谢,Rik

Primefaces登录申请

可能重复: JSF HTTP会话登录 我使用Primefaces来实现我的Web应用程序。 在我的实现中,用户可以登录系统,然后他们可以通过复制该URL而无需再次登录来再次加载重定向的页面。 我怎么能阻止这个? 这是我的登录逻辑: public String doLogin() { if(username != null && username.equals(“admin”) && password != null && password.equals(“admin”)) { msg = “table?faces-redirect=true”; } else if(user_name.contains(username) && pass_word.contains(password) && !user_name.contains(“admin”)) { msg = “table1?faces-redirect=true”; } } return msg; }