Articles of Java的

HttpServletRequest对象的远程IP地址被Apache Proxy遮挡

我正在用Java编写一个应用程序,它使用来自底层数据库的数据为网页提供服务。 我基于一些IP限制来限制对网页的访问。 基本上任何属于“接受”范围的IP都将被允许访问网页,任何超出此范围的IP将被redirect到错误页面。 要获取尝试访问该页面的用户的IP地址,我正在使用以下内容: String userIPAddress = request.getRemoteAddr(); “请求”是我的HttpServletRequest对象。 我遇到的问题是这个网页是通过Apache Web服务器代理的。 发生这种情况时,会丢失客户端IP地址并采用防火墙的IP地址。 因此,当我访问request.getRemoteAddr()时,无论客户尝试访问网页的位置,它都会返回相同的IP。 当通过直接IP地址在内部访问网页时,我的IP检查工作得很好。 当您通过代理访问时,问题就出现了。 有什么我可以以编程方式访问客户端的实际IP地址? 或者,这是必须通过Apache Web服务器完成/更改以允许此信息通过? 在这种情况下,我可以发布到服务器故障,如果这将是一个更好的论坛。 非常感谢您的帮助。 最好的祝福。

使用JTA时不能使用EntityTransaction(无手动事务语句)

我知道这个查询已经在其他讨论中处理过了,但是我没有把@Transactional和em.getTranstaction.begin()或者任何其他的手工交易语句混合在一起。 (使用glassfish和netbeans 8) 代码如下: MainDao package com.restaurant.orders; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @Component public class MainDao { @PersistenceContext private EntityManager em; @Transactional public void addUser(Users user) { em.persist(user); } @Transactional public void addOrder(Orders order) { em.persist(order); } @Transactional public void addOrderItem(Orderitems orderitem) { em.persist(orderitem); } public List<Users> getAllUsers() […]

使用apache poi在excel中检测隐藏的单元格

我们使用apache poi 3.8来parsingexcel。 我们需要能够检测(和跳过)隐藏的行,因为它们往往包含我们的用例中的垃圾数据。 这似乎应该工作: row.isFormatted() && row.getRowStyle().getHidden() 但似乎从来没有任何行级格式化(getRowStyle()总是返回null)。 作为最后的手段,我们认为检查单元格样式可能工作: for (int i = 0; i < row.getLastCellNum(); i++) { Cell cell = row.getCell(i); if (cell != null && cell.getCellStyle() != null && cell.getCellStyle().getHidden()) … 但是对于我们得到的每一行(上面for循环中的自定义输出): Cell 0 is not hidden org.apache.poi.hssf.usermodel.HSSFCellStyle@1b9142d0 / false “getHidden()”不工作还是不工作,因为我认为它呢? 是否有另一种方法来检测隐藏的行? (隐藏的列也将是一个不错的奖金,但略有关系atm)

为什么apache.commons.logging.Log不会loggingdebugging级别?

我有一个J2SE桌面应用程序,我试图了解如何使用Apache公共日志logging。 我在我的项目中有以下属性文件,使用最新的Apache公共日志logging: commons-logging.properties: org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger #Priorities are: DEBUG, INFO, WARN, ERROR, or FATAL. log4j.rootCategory=DEBUG log4j.appender.appender.Threshold=DEBUG log4j.properties: log4j.rootLogger=TRACE logging.properties: # jdk handlers handlers=java.util.logging.ConsoleHandler java.util.logging.FileHandler # default log level FINE=ERROR FINER= FINEST= .level=FINEST java.util.logging.ConsoleHandler.level=FINEST # log file name for the FileHandler java.util.logging.FileHandler.pattern=gef_debug.log 甚至一切设置为FINEST或TRACE,我仍然只是在我的控制台上的信息和错误日志。 任何想法这里有什么问题? – 顺便说一下,我在一个现有的旧项目,所以也许有一些我不知道的configuration,这是阻止我的日志…:/但只用于DEBUG级别。

使用Apache poi从docx获取文本样式

我试图从一个MS docx文件中获得样式信息,我没有问题写入文件内容与添加样式,如粗体,斜体。 字体大小等,但是读取文件内容和获取样式信息不是很清楚。 我试过使用XWPFDocument,这个API似乎没有读取样式的能力。 我现在正在尝试XWPFWordExtractor这似乎有点更有前途,但我仍然坚持获取文本的样式信息。 我读的内容types如下所示。 “你好,这是粗体文本 ,这是斜体文本 abd这是粗体斜体文本 ” 任何指向示例的指针都会很棒。

确保代理持有消息,直到至less有一个消费者获得消息

我开始实现一个基于ActiveMQ的消息服务发送工作任务到各种服务器,但我注意到,在默认模式下,如果没有人正在“聆听”一个生产者的话题,来自该生产者的任何消息将会丢失。 也就是说, 如果生产者发送者消息与现场经纪人 但没有消费者在那里倾听 消息不去哪里 我希望经纪人能够保持消息,直到至less有一位听众收到消息。 我正在尝试一些方法来实现这一点,但不能确定最优化/正确的方式: 实现消息确认function (注意这一点,我需要制作人在每一个看起来非常非常笨重和不得已的消息之后等待它的听众…) 实施会话交易 (我在这个问题上遇到了麻烦,因为交易这个词听起来是正确的,但是我认为这与生产者 – 经纪人交互有关,而不是生产者 – 消费者) 理想情况下,有一种模式可以发送一个(或一组)消息,并且在发送一个布尔值之后,返回至less一个消费者是否听到消息。

在Apache Tomcat中将JAX-WS webservice部署为War

我已经开发了一个使用JAXWS的web服务,并能够从tomcat 7上的eclipse运行它,没有任何问题。 但我的问题是如何在Apache中部署一个战争文件。 当我给运行在服务器上,它结束了exceptionSEVERE:WSSERVLET11:未能parsing运行时描述符:java.lang.NoClassDefFoundError:org / glassfish / ha / store / api / BackingStoreException 如果我login到Apache并尝试从那里运行,我可以看到这个失败 – 上下文path/ IPWSv2上的应用程序无法启动 这是我的sun-jaxws.xml: <?xml version="1.0" encoding="UTF-8"?> <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> <endpoint name="IPWSServiceV1" implementation="com.ipws.insurpay.ipwsv1.IPWSServiceV1" url-pattern="/IPWSServiceV1" /> </endpoints> 我在我的web.xml中有这个映射 <servlet-mapping> <servlet-name>IPWSServiceV1</servlet-name> <url-pattern>/IPWSServiceV1</url-pattern> </servlet-mapping> 如果我用enpoint发布者运行它, public static void main(String[] args) { Endpoint.publish("http://host/Project-Name/IPWSServiceV1", new IPWSServiceV1()); } 以下是堆栈跟踪: Jun 4, 2013 11:18:02 AM org.apache.catalina.core.StandardContext startInternal […]

在configuration单元中创build表格exception?

我已经安装了Hive,但是当我写命令创build表“CREATE TABLE foo(id int,msg STRING);”。 我抛出exception“清理操作已完成失败:元数据错误:javax.jdo.JDOFatalDataStoreException:无法创build数据库'metastore_db',请参阅下一个exceptionexception.NestedThrowables:java.sql.SQLException:无法创build数据库'metastore_db',请参阅下一个exception的细节.FAILED:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1“。 为什么会发生这种exception,无论是configuration问题还是其他问题。

tomcat:如何打开jdbc:oracle连接的堆栈跟踪?

让一个Web应用程序跨多个位置运行, 通过在linux上运行这个命令,我可以看到许多连接堆积起来: ps -ef|grep LOCAL 向我显示与进程ID的活动oracle连接的数量,连接数量每小时增长5-7个数字。 几个小时后,应用程序变慢,最终tomcat服务器需要重新启动。 因为我可以看到连接的增长,有没有办法获得这些连接的来源,找出哪些类或对象创build了这些连接? 而我没有使用Tomcat连接池,我试图通过发出kill -3 tomcat pid生成线程转储,但是对我没用,因为我无法理解它们,甚至尝试过线程分析器。 是否有任何简单的方法来获得与这些奠定了连接的原始类与获得一个小提示,使用一些tomcatfunction,或通过任何其他手段?

在tomcat中共享一个文件夹

如何使用Tomcat 6的浏览器启用文件夹可访问? 我想我需要添加一个上下文到web.xml? 我想 – 所以当我导航到http:// localhost:8080 / myfiles我希望看到c:\ temp的内容 谢谢