我有一个js缓存在5-10分钟之间的文件,具体取决于我是使用eclipse中的tomcat(通过GWT插件)还是以独立方式启动tomcat.
这很奇怪,因为我使用的GWT是我的框架,并且根本不应该缓存此文件(对于那些了解GWT的人来说,这是一个nocache.js文件).我已经阅读了一个GWT Google团队线程,它是一个容器配置问题,而在其他地方,我需要在包含的HTML文件中定义它.
基本上,我现在很困惑,因为我不知道如何让这个文件不缓存.请注意,此js是由生成的GWT,我无法修改它.
感谢任何帮助,Ittai

我的DAL实现了Hibernate,我希望将EHCache其作为其二级缓存及其分布式功能(用于可伸缩性和HA).
眼见为EHCache提供分布式缓存只与Terracotta我的问题是什么角色Terracotta服务器实例?它是否也包含数据?它是否只协调分区缓存部分之间的分配?
我的困惑主要来自这个解释关于TSA它说的服务器保存的数据,但我想,也许在我的方案中的高速缓存和Terracotta服务器被排序的合并.我对么?
如果服务器确实持有数据,那么为什么瓶颈不应该从数据库移动到Terracotta服务器?
更新: Affe的回答回答了我的问题的第二部分,这是重要的部分,但以防万一有人来寻找第一部分,我会说TC服务器必须保存内存中的EHCache所拥有的所有数据,所以如果你想要一个分布式缓存(不复制),那么L2(TC服务器)也必须自己拥有所有对象.
感谢提前,
Ittai
我想向for属性添加$(location)扩展,在属性中设置依赖项,但失败了:
我在目标中定义了属性中该标签的依赖项,如下所示:rules_scalajvm_flagsdata
label '//src/java/com/google/devtools/build/lib:worker' in $(location) expression is not a declared prerequisite of this rule.data
scala_specs2_junit_test(
...
data = ["//src/java/com/google/devtools/build/lib:worker"],
jvm_flags = ["-XX:HeapDumpPath=/some/custom/path", "-Dlocation.expanded=$(location //src/java/com/google/devtools/build/lib:worker)"],
)
Run Code Online (Sandbox Code Playgroud)
我看到当我添加ctx.attr.data到expand_location呼叫扩展时有效,但我不太确定为什么这不是一个黑客。确实是data特例吗?
location_expanded_jvm_flags = []
for jvm_flag in jvm_flags:
location_expanded_jvm_flags.append(ctx.expand_location(jvm_flag, ctx.attr.data))
Run Code Online (Sandbox Code Playgroud)
还尝试查看java_*规则源以了解其工作原理(因为$(location)那里的扩展支持该data属性),但找不到相关位置。
完整目标:
scala_specs2_junit_test(
name = "Specs2Tests",
srcs = ["src/main/scala/scala/test/junit/specs2/Specs2Tests.scala"],
deps = [":JUnitCompileTimeDep"],
size = "small",
suffixes = ["Test"],
data = ["//src/java/com/google/devtools/build/lib:worker"],
jvm_flags = ["-XX:HeapDumpPath=/some/custom/path", "-Dlocation.expanded=$(location //src/java/com/google/devtools/build/lib:worker)"], …Run Code Online (Sandbox Code Playgroud) 编辑:我现在确定问题与包含while (true)所有其他命令的循环有关,
因为我已将其注释掉,并且应用程序在没有附加异常的情况下进行部署.我不确定它有多重要,但我的ServletContextListener实现看起来像这样:
public class BidPushService implements ServletContextListener{
public void contextInitialized(ServletContextEvent sce) {
//Some init code not relevant, omitted for clarity
BidPushThread t= new BidPushThread();
t.setServletContext(sce.getServletContext());
t.run();
}
Run Code Online (Sandbox Code Playgroud)
whileServletContextListener循环被注释,它没有任何实际意义.
当我的应用程序加载时,我需要在后台运行一个线程,并且不断(没有超时)检查某个队列中的对象.当然,一旦有了对象,它就"照顾它们",然后继续检查队列.
目前,我正在实现java.lang.Thread界面,我在应用程序加载时被调用.在其中,我做了一些维护工作并启动了一个我继承的线程run().
这是我的问题开始的地方(或者我认为).在我的java.util.concurrent.TimeOutException方法中,我有一个
while (true) {
//some code which doesn't put the thread to sleep ever
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将我的应用程序部署到服务器时,我得到了一个ServletContextListener.我究竟做错了什么?
我不能有一个始终运行的线程吗?删除应用程序后,该线程将被我的相应事件停止while (true).
我确实需要能够毫不拖延地检查队列的东西.
非常感谢您的帮助!
编辑:这是堆栈跟踪
GlassFish: deploy is failing=
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 我已经使用GWT很长一段时间了,到目前为止只使用eclipse插件来编译我的项目.由于新的要求,我需要使用ant构建(第一次)来构建gwt项目.首先我要说我有2个模块有一个入口点和2个其他常见模块,它们只包含java类(应该转换为js),它们位于我工作区的不同项目中.
目前我有GWT项目需要Common项目,而该项目又需要DAL项目(当我说要求时,我的意思是它在eclipse项目构建路径中如此定义).在我的GWT项目中,我在适当的位置有一个Common.gwt.xml和DAL.gwt.xml文件,它们将这些文件定义为模块,我的ModuleEntryPoint.gwt.xml继承了这两个模块(除了其他模块).当我目前使用gwt eclipse插件编译一切运行良好.
但是,当我尝试使用ant构建模拟这个时,我的ModuleEntryPoint的编译失败,因为编译器说它无法找到属于DAL模块或Common模块的类的源.
ant构建代码非常基础,因为这是我的第一次尝试.
提前感谢您提供的任何帮助.
<path id="compile.classpath">
<fileset dir="${build.dir.WEB-INF.lib}">
<include name="**/*.jar" />
<include name="**/*.xml" />
</fileset>
<fileset dir="${ExternalLib.WebServer.dir}">
<include name="**/*.jar" />
<include name="**/*.xml" />
</fileset>
<fileset dir="${GWT.dir}">
<include name="**/*.jar" />
<include name="**/*.dll" />
</fileset>
</path>
<target name="clear_previous_war">
<delete dir="${build.dir}" />
<mkdir dir="${build.dir.WEB-INF.classes}"/>
<mkdir dir="${build.dir.WEB-INF.lib}"/>
Run Code Online (Sandbox Code Playgroud)
<target name="build_common" >
<jar destfile="${build.dir.WEB-INF.lib}/${jar.common}"
basedir="${common.dir.build}"
includes="com/**"
excludes="**/.svn"
/>
</target>
<target name="build_dal" >
<jar destfile="${build.dir.WEB-INF.lib}/${jar.dal}"
basedir="${dal.dir.build}"
includes="com/**"
excludes="**/.svn"
/>
</target>
<target name="copy_additional_files" >
... Copies all required external jars to web-inf/lib
</target>
<target name="compile_web_classes" > …Run Code Online (Sandbox Code Playgroud) 我正在尝试决定是否从Hibernate全身使用转为使用JPA2.0,从而提供便携式设备.
1. JPA2.0支持自定义用户类型吗?
2.我正处于实现Terracotta二级缓存的边缘,Hibernate主要考虑其聚类能力.我想,但我实际上并不知道,这JPA2.0也定义了二级缓存提供程序的规范.如果我是对的,是否Terracotta实施了它?(如果有人能指出我的入门Terracotta,JPA我会很感激).
感谢提前,
Ittai
如果设置了FlushMode.AUTO,当我调用session.close()时,Hibernate会刷新我更新的持久对象吗?
我知道session.close()通常不会刷新会话但我不确定FlushMode.AUTO如何影响这个.
来自Docs:
FlushMode.AUTO
会话有时在查询执行之前刷新,以确保查询永远不会返回失效状态.这是默认的刷新模式.
这是否意味着我可以依赖Hibernate来验证我的更改有时会在我的会话关闭之前刷新?
小代码示例:
Session session = HibernateSessionFactory.getSession();
PersistedObject p = session.get(PersistedObject.class,id);
p.setSomeProperty(newValue);
session.close();
Run Code Online (Sandbox Code Playgroud)
更新
根据文档,这些是会话将刷新的地方(使用AUTO时)
这没有说明Session.close()
下面代码中ut实例的重用是否正确?
UserTransaction ut = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
ut.begin();
doSomeWork();
ut.commit();//Or rollback (I think it doesn't matter)
ut.begin(); //Or rollback (I think it doesn't matter)
doOtherWork();
ut.commit();
Run Code Online (Sandbox Code Playgroud)
当定义 JNDI 资源时:
Reference atomikosUserTransactionFactoryDS = new Reference("com.atomikos.icatch.jta.UserTransactionImp",
"com.atomikos.icatch.jta.UserTransactionFactory", null);
atomikosUserTransactionFactoryDS.add(new RefAddr("name") {
public Object getContent() {
return "UserTransaction";
}});
atomikosUserTransactionFactoryDS.add(new RefAddr("type") {
public Object getContent() {
return "com.atomikos.icatch.jta.UserTransactionImp";
}});
initContext.rebind("java:comp/UserTransaction", atomikosUserTransactionFactoryDS);
Run Code Online (Sandbox Code Playgroud)
我不确定的是我是否需要添加另一个查找,以便在开始新的 UserTransaction 之前从工厂检索新的 UserTransaction?
我认为这无关紧要,但正如资源定义所述,我使用 Atomikos 作为我的事务管理器(因此它是工厂作为工厂)。
谢谢,一
泰
我在Eclipse(Helios)中使用Hibernate工具3.40.我正在尝试使用EJB3样式(即JPA2.0注释)从我的数据库(MSSQL 2008)生成POJO.
比方说,我有两个表A和B那里是从外键A来B.
默认情况下,这会生成一个POJO,A其中有B一个成员(其"父")和一个POJO,B其中有Set<A>一个成员(其"子").
我想知道如何控制rev-eng,以便只创建关联的一面(我有不同的用例,所以基本上所有三个选项对我来说都很重要).
我不想使用hbm.xml文件,因为我正在使用注释和JPA2.0但是我可以通过hibernae.reveng.xml在逆向工程过程中指定一些元数据来休眠
我已经尝试配置foreign-key属性并在那里定义,exclude=true但这只为我提供了一个场景的答案.这生成了一个A带有bPK int成员的POJO,这是可以容忍和可理解的,但是生成的POJO B现在不能编译,因为one-to-many注释具有无效属性; 在mappedby="unresolved"由于这样的事实,A不再具有休眠复仇可以映射回财产.
所以,我目前无法创建单向关联,我会感激任何帮助.
我需要编写一个规则来*.foo压缩可执行文件的所有可传递配置文件 ( )(可以是自定义规则、java_binary 和 docker container_image)。
该配置文件可以在出现srcs可执行文件的任何属性的属性(tars,deps,runtime_deps等)
这听起来应该很容易通过附加到我的规则的方面来实现,但我在各种示例之间迷失了方向。
java ×6
hibernate ×4
bazel ×2
gwt ×2
terracotta ×2
ant ×1
atomikos ×1
bazel-aspect ×1
caching ×1
deployment ×1
ehcache ×1
flush ×1
http-headers ×1
jpa ×1
jpa-2.0 ×1
jta ×1
servlets ×1
session ×1
timeout ×1
tomcat ×1
transactions ×1