我目前在我的.war文件中有一堆图像.
WAR-ROOT
-WEB-INF
-IMAGES
-image1.jpg
-image2.jpg
-index.html
Run Code Online (Sandbox Code Playgroud)
当我通过我的servlets/jsp/etc生成html时,我可以简单地链接到
HTTP://host/contextroot/IMAGES/image1.jpg
和
HTTP://host/contextroot/IMAGES/image1.jpg
不是我正在编写一个需要获取文件系统引用这些图像的servlet(在这种情况下呈现复合.pdf文件).有没有人建议如何获得文件系统引用放在战争中的文件类似于这是什么?
它可能是我抓住servlet初始化的URL吗?我显然可以有一个明确指向已安装目录的属性文件,但我想避免其他配置.
我们有一个Web应用程序需要通过http从合作伙伴站点导入10-20个图像.如果我有一个表示我想下载的网址的字符串列表,是否有人建议如何尽快下载它们?
我可以把它们放在for循环中,但是如果有一种简单的方法来并行化它,那么最终用户可能会有好处.我想避免使用直接的Java线程,尽管执行程序框架可能是个好主意.
有任何想法吗?
我们基于GWT的应用程序需要字体大小选择器.通常人们会想要从一组标准尺寸中选择字体大小.但有时用户会想要手动输入特定的字体大小,如'12 .6'.我们显然不能在我们的字体大小下拉列表中放置十分之一的点选项,因此可以手动输入任何值的下拉列表最有意义.
我被告知simple-gwt有一个名为ComboBox的小部件,但它似乎是为了旧版本的gwt(我们是最新的 - 2.4).Suggestbox可以工作,除了没有"下拉"箭头弹出建议,所以不想输入大小的用户不能使用它.
有什么建议?我很惊讶这个小部件没有内置到GWT中.
我们有一个解析PDF文件的系统,并将内部文本拉出来进行索引等.我们遇到的一个问题是Illustrator设置包含"fi"的单词以使用fi的单一字形(单字形).
比如这条线......
"长凳和丰富的陶瓷瓷砖."
在我的Java调试器中显示如下
"ete bench and rich vitri\u001Fed瓷砖."
看来\ u001F是Adobe PDF文件用于连字"fi"的字符代码.我显然可以将"u"的出现替换为"fi",但是有人知道一种强有力的方法来处理这种情况吗?
有两种方法可以使用Apache FileUpload Library.
上传文件
http://commons.apache.org/fileupload/using.html
和Streaming FileUpload API
http://commons.apache.org/fileupload/streaming.html
它们都很好用,除了流API在处理流之前似乎没有办法检查fileSize.
这是因为Streaming API从根本上不知道文件大小,还是因为我需要手动读取一些标题或其他内容来获取Multipart上传大小?
我们最近添加了一个基于Silverlight的插件(Plupload),除了一个问题外,效果很好:
如果您尝试在Chrome中使用它,您的浏览器将弹出消息"Silverlight已被阻止,因为它已过期".
我很欣赏谷歌试图强迫用户更新(他们从来没有这样做过),但这让我们的客户支持量增加了三倍.有没有人知道通过Javascript/Html代码强制它在Chrome中运行的方法?
我们在使用Java applet的许多站点中看到了同样的问题.由于Oracle经常进行微小的更新,因此几乎不可能保持"最新",因此您要求升级9/10次.
我们有一个运行Hibernate/C3PO 4.1.4.Final,Jetty,Java 6和Mysql 5.1.63的webapp.
javax.persistence.PersistenceException:org.hibernate.exception.JDBCConnectionException:通信链接失败
从服务器成功接收的最后一个数据包是238,519毫秒.成功发送到服务器的最后一个数据包是0毫秒前.
我们的persistence.xml的属性部分看起来像这样......
<properties>
<property name="hibernate.show_sql" value="false"/>
<!--Begin Credentials -->
<property name="hibernate.connection.url"
value="${rp.config.db.url}&useUnicode=true&characterEncoding=UTF-8"/>
<property name="hibernate.connection.username" value="${rp.config.db.user}"/>
<property name="hibernate.connection.password" value="${rp.config.db.password}"/>
<!--End Credentials -->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.dialect" value="com.printlogix.rp.server.utils.Mysql5BitBooleanDialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<!--C3PO -->
<property name="hibernate.connection.provider_class"
value="org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider"/>
<property name="hibernate.c3p0.acquire_increment" value="25"/>
<property name="hibernate.c3p0.idle_test_period" value="60"/>
<property name="hibernate.c3p0.timeout" value="120"/>
<property name="hibernate.c3p0.max_size" value="150"/>
<property name="hibernate.c3p0.min_size" value="25"/>
<property name="hibernate.c3p0.max_statement" value="0"/>
<property name="hibernate.c3p0.preferredTestQuery" value="select 1;"/>
</properties>
Run Code Online (Sandbox Code Playgroud)
我们在MySQL上的超时设置为600秒.我们不知道这是怎么发生的1/5次.服务器负载很小,数据库相对较小,servlet都在几秒钟内运行.
有人有什么想法吗?
我们公司使用Mercurial来控制Java Web应用程序.它工作得很好,我们开始使用源代码控制来处理大量内容(PDF文件).对于我们的部署模型,这非常有效,幸运的是我们的平面设计师曾经是一名Web开发人员并且已经理解了源代码控制.
现在我们已经用两个严格的印刷图形设计师取代了那个人.他们所做的事情令人惊叹,但每当我们要求他们使用源代码控制时,他们都会感到害怕和困惑.作为参考,我们使用Tortoise,因为我们发现由于其用户界面,它是非程序员的最佳选择.
Hginit.com是程序员学习Mercurial的好方法,现在如何为非程序员提供网站?
有任何想法吗?
我有一个表将一些数据类型存储为字符串.有时,此值是表示时间戳的字符串.下面的查询是指加入在字段名(在RetsProvider指定)RetsEntry和RetsProvider表然后滤除"SYSTEMID"列中的值,其中所述条目的时间戳是两个时间之间.
SELECT
*
FROM (
SELECT
systemid,
cast(value AS TIMESTAMP) AS valueTS
FROM cabarets.retsentry, cabarets.retsprovider
WHERE cabarets.retsentry.providername = cabarets.retsprovider.name
AND cabarets.retsentry.systemname = cabarets.retsprovider.lastupdatefield) AS foo
WHERE foo.valueTS <= now();
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我收到错误消息.
[2013-01-09 14:04:30] [22007]错误:类型timestamp的输入语法无效:""
当我自己运行子查询时,我得到这样的数据......
SELECT
systemid,
cast(value AS TIMESTAMP) AS valueTS
FROM cabarets.retsentry, cabarets.retsprovider
WHERE cabarets.retsentry.providername = cabarets.retsprovider.name
AND cabarets.retsentry.systemname = cabarets.retsprovider.lastupdatefield
Run Code Online (Sandbox Code Playgroud)
这给出了这样的输出......
systemid valuets
'4705683' '2012-11-08 01:37:45'
'259534632' '2012-11-15 20:40:52'
'259536713' '2012-10-16 10:57:40'
'65815875' '2012-10-28 22:36:00'
'259540896' '2012-10-16 09:59:22'
'4707500' '2012-11-10 01:44:58'
Run Code Online (Sandbox Code Playgroud)
问题是postgres不允许你根据作为转换字符串列的别名的列添加where子句吗?
我的代码看起来像这样.
this.entityManager = AppFactory.instance().getEntityManagerFactory().createEntityManager();
this.hibernateSession = entityManager.unwrap(Session.class);
try{
//do some queries using both entityManager and hibernateSession
}finally{
this.entityManager.close();
}
Run Code Online (Sandbox Code Playgroud)
但我似乎在某个地方有连接泄漏.我想知道我是否应该关闭entityManager和hibernateSession.还有其他人在这种情况下工作过吗?