我在Jetty中运行我的servlet应用程序,它有时输出下面显示的堆栈跟踪.我认为这意味着它收到了无效的URL请求,但我实际上看不到请求.我可以处理这个异常,以便我的日志不会被这个令人讨厌的堆栈跟踪堵塞吗?如果是这样,它可以在我的代码中处理,或者在获取我的代码之前是否发生了这个错误,因此需要使用Jetty配置进行处理?
编辑 所以,如果我转移到Jeety 9,我怎么能配置它以便堆栈跟踪去,我可以配置一个合适的http响应代码
另外,我已经意识到jetty在http://tuckey.org/urlrewrite/处理完之后正在接收请求,如果生成的url无效,我是否应该在UrlRewriteFilter中配置其他事情来做其他事情.
2013-01-11 23:48:10.939:WARN:oeju.UrlEncoded:org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! byte B0 in state 0
2013-01-11 23:48:10.939:WARN:oejs.ServletHandler:/ws/2/release/
org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! byte B0 in state 0
at org.eclipse.jetty.util.Utf8Appendable.appendByte(Utf8Appendable.java:174)
at org.eclipse.jetty.util.Utf8Appendable.append(Utf8Appendable.java:99)
at org.eclipse.jetty.util.UrlEncoded.decodeString(UrlEncoded.java:709)
at org.eclipse.jetty.util.UrlEncoded.decodeTo(UrlEncoded.java:251)
at org.eclipse.jetty.util.UrlEncoded.decodeTo(UrlEncoded.java:187)
at org.eclipse.jetty.server.Request.mergeQueryString(Request.java:2045)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:244)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) …Run Code Online (Sandbox Code Playgroud) java jetty url-rewriting stack-trace tuckey-urlrewrite-filter
我在我以前从未见过的日志中发现了这个异常,我正在使用Hibernate 4.1.7
这是否表明我的数据库已损坏,或者这是Hibernate中的错误.我在http://lists.jboss.org/pipermail/hibernate-issues/2010-November/026487.html上找到了对此错误的引用,但这引用了更早版本的hibernate并且针对Hibernate 4.0进行了修复
org.hiorg.hibernate.HibernateException: IOException occurred reading a binary value
at org.hibernate.type.descriptor.java.DataHelper.extractBytes(DataHelper.java:187)
at org.hibernate.type.descriptor.java.PrimitiveByteArrayTypeDescriptor.wrap(PrimitiveByteArrayTypeDescriptor.java:124)
at org.hibernate.type.descriptor.java.PrimitiveByteArrayTypeDescriptor.wrap(PrimitiveByteArrayTypeDescriptor.java:41)
at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$5.doExtract(BlobTypeDescriptor.java:118)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:65)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:269)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:265)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:238)
at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:357)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2807)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1545)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1477)
at org.hibernate.loader.Loader.getRow(Loader.java:1377)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:644)
at org.hibernate.loader.Loader.doQuery(Loader.java:854)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
at org.hibernate.loader.Loader.doList(Loader.java:2382)
at org.hibernate.loader.Loader.doList(Loader.java:2368)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2198)
at org.hibernate.loader.Loader.list(Loader.java:2193)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:122)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1618)
at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
at com.jthink.songkong.db.SongCache.loadSongsFromDatabase(SongCache.java:57)
at com.jthink.songkong.analyse.analyser.SongGroup.getSongs(SongGroup.java:48)
at com.jthink.songkong.analyse.analyser.DiscogsSongGroupMatcher.call(DiscogsSongGroupMatcher.java:63)
at com.jthink.songkong.analyse.analyser.DiscogsSongGroupMatcher.call(DiscogsSongGroupMatcher.java:28)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: …Run Code Online (Sandbox Code Playgroud) 是否可以为使用jaxb生成的类生成equals和compareTo方法,我使用jaxb从模式生成类.这些类实际上有guid,允许它们被唯一标识,但是我如何实现equals/compare方法,以便Set等集合类可以识别同一实体的重复实例?
即我有一个10 MB的文件,我想删除1M到2M的字节,因此生成的文件是9mb,从文件中以2m字节开始的数据现在从1M开始
我使用Java 7,因此可以制作NIO,文件大小通常为10MB,并且经常通过网络访问,所以我正在寻找一个表现良好的优雅解决方案.
我知道BteBuffer.allocateDirect()和File.getChannel(),但我很难解决,如果有办法做我想要的,不涉及必须从文件通道写入8MB临时缓冲区只是为了写回来在不同的地方存档,或者如果使用allocateDirect()这实际上是可以的
所以我收到了Comodo的证书并通过KSoftware购买了我用来签署我的软件,所以当用户下载它时它不会产生警告,这一直工作正常,但是2年的证书在上个月到期了.我上周购买了一个新证书,并申请了我的应用程序的新版本,但现在当我下载它时警告我未知的发布者,并且当我点击更多信息时它显示我的完整地址而不仅仅是我的公司名称JThink.
我已经在浏览器中看着我的新老证书,并发现我有Jthink有限公司在旧证书和 JThink在新的一个,这会导致一个问题?
更新
Comodo告诉我,在微软开始接受新证书之前还有一段时间,即使公司信息相同也是如此,因为证书没有不同.
这是真的,我们在这里讨论的时间长度是多少?
在我的HTML UI我希望用户能够选择多个国家,因为有太多的国家允许显示我发起的HTML页面,以便它有两个列出了完整的清单:第二个列表刚刚那些已经选中,第一个包含所有国家/地区(已经选择并添加到第二个列表除外),使用"添加和删除"按钮在这两个列表之间进行用户转移
我通过设置size属性为每个选择框显示15行.
<tr>
<td>
<select id="preferred_countries_all" size="15" style="width:200px" multiple="multiple">
<option value=" AF">Afghanistan</option>
<option value="AX">Åland Islands</option>
<option value="AL">Albania</option>
<option value="DZ">Algeria</option>
<option value="AS">American Samoa</option>
<option value="AD">Andorra</option>
<option value="AO">Angola</option>
<option value="AI">Anguilla</option>
<option value="AQ">Antarctica</option>
<option value="AG">Antigua and Barbuda</option>
<option value="AR">Argentina</option>
<option value="AM">Armenia</option>
<option value="AW">Aruba</option>
<option value="AU">Australia</option>
<option value="AT">Austria</option>
<option value="AZ">Azerbaijan</option>
<option value="BS">Bahamas</option>
<option value="BH">Bahrain</option>..
</select>
</td>
<td>
<button style="width:100px" type="button" id="preferred_countries_add" onclick="add_preferred_countries();">
Add
</button>
<br>
<button style="width:100px" type="button" id="preferred_countries_remove" onclick="remove_preferred_countries();">
Remove
</button>
</td>
<td>
<select id="preferred_countries_selected" name="preferred_countries_selected" size="15" style="width:200px" multiple="multiple">
</select>
</td>
</tr> …Run Code Online (Sandbox Code Playgroud) 我通过添加以下内容在Hibernate 4.3.11中启用了二级缓存:
config.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory");
config.setProperty("hibernate.cache.use_second_level_cache", "true");
Run Code Online (Sandbox Code Playgroud)
到我的Hibernate配置.
这到我的pom.xml(不确定pom定义是否有必要这个尴尬)
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.3.11.Final</version>
<exclusions>
<exclusion>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.7.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这到我要缓存的类
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
Run Code Online (Sandbox Code Playgroud)
但是如何在创建数据库时在代码中配置缓存大小,对我来说使用Xml文件是不实际的,这只会增加构建过程的复杂性,我更喜欢在代码中执行.
从Hibernate创建数据库后更新,我发现已经创建了缓存
CacheManager.create();
String[] cacheNames = CacheManager.getInstance().getCacheNames();
for(String cacheName:cacheNames)
{
MainWindow.logger.severe("CacheName:"+cacheName);
Cache cache = CacheManager.getInstance().getCache(cacheName);
cache.getCacheConfiguration().setMaxEntriesInCache(1000);
cache.getCacheConfiguration().setLogging(true);
}
Run Code Online (Sandbox Code Playgroud)
但是我怎么能影响它们的创建方式,或者像我所做的那样修改值就足以更新了.当我运行时,我看到没有调试outout或任何表明正在使用缓存的东西.
AdoptOpenJDK 的 JRE 11+ 是否与仅使用jlink并添加所有依赖项相同?
Oracle Java 11 及更高版本不附带仅 JRE 的 JDK,因为您可以使用jlink构建自己的 JRE,其中仅包含您需要的系统模块,这就是我在 Windows 和 Linux 上所做的。
然而,对于如何为某些平台(Docker 和 MacOS)合并 jlinked JRE 对我来说并不是那么明显,并且由于 AdoptOpenJDK 不仅为 JDK 还提供了 JRE 的二进制文件,我想我可能只为这些平台使用 JRE。但是,如果我将 JDK 链接起来并包含所有系统模块依赖项,JRE 是否包含我会得到的所有内容?
最近将应用程序从 Oracle Java 9 更新到 AdoptJDk 11.0.6,我现在看到以下代码形式的错误:
public static String convertWikidataUrl(String wikidataUrl)
{
String qPage = wikidataUrl.substring(wikidataUrl.lastIndexOf('/') + 1);
String apiUrl = WIKIDATA_IMAGE_API_URL + qPage;
try
{
URL url = new URL(apiUrl);
HttpURLConnection uc = (HttpURLConnection) url.openConnection();
int responseCode = uc.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK)
{
MainWindow.logger.severe(":ResponseCode:"+responseCode);
}
//Everything ok so continue
BufferedInputStream bis = new BufferedInputStream(uc.getInputStream());
JAXBContext jc = getWikidataInitialContext();
Unmarshaller um = jc.createUnmarshaller();
Api api = (Api) um.unmarshal(bis);
if(api.getClaims()!=null
&& api.getClaims().getProperty()!=null
&& api.getClaims().getProperty().getClaim()!=null
&& api.getClaims().getProperty().getClaim().getMainsnak()!=null
&& api.getClaims().getProperty().getClaim().getMainsnak().getDatavalue()!=null)
{ …Run Code Online (Sandbox Code Playgroud) 我在使用 Java 的 linux 系统上读取(和写入)文件时遇到问题。我的应用程序抱怨它无法读取某些音频文件,当我查看系统时,我注意到ls -l这些文件也失败了,并且所有问题文件都是包含带引号等字符的文件,例如é,没有这些字符的文件是可以的。
[root@N1-0247 Georges Bizet- Suites from Carmen & L'arlésienne]# pwd
/mnt/disk1/share/import/all/MusicUnmatched/WAV/Yan Pascal Tortelier/Georges Bizet- Suites from Carmen & L'arlésienne
[root@N1-0247 Georges Bizet- Suites from Carmen & L'arlésienne]# ls -l
ls: cannot access 20 - L' Arlésienne, suite for orchestra No. 1, from the incidental music- Farandole.WAV: No such file or directory
ls: cannot access 19 - L' Arlésienne, suite for orchestra No. 1, from the incidental music- Minuetto.WAV: No such file …Run Code Online (Sandbox Code Playgroud)