我正在开发一个Web应用程序.通常在请求开始时(通过体系结构代码),打开Hibernate会话以处理数据库事务.在请求结束时,会话将关闭.这适用于我们的所有事务,除了在一个特定实例中,我想从请求中触发一个线程.该线程将调用DB事务.
从线程中,我调用"sessionFactory.openSession()",并在此会话中执行我的事务.问题出现在请求完成时,线程本身可能不一定完成.因此,当请求完成并且线程尝试执行另一个DB事务时,我得到一个Hibernate会话已关闭!错误.
无论如何,从我的线程,我可以打开一个"干净"的会话,与请求开始时打开的会话无关?
我正在尝试 ASP.NET 登录控制教程,一切正常。但是,我不知道如何让登录控件使用我自己的数据库(SQL Server 2005)而不是使用它的 mdf 文件。我也不知道这个文件是从哪里创建的,因为它根本没有出现在我的解决方案中。任何我能找到的关于登录控件工作的文献都将不胜感激。
这部分模仿AJAX(prototype/php)在脚本执行期间获得部分状态更新,但是我正在使用JSP页面和servlet.我想要做的是在用户单击按钮时启动操作,然后显示此操作进度的更新.该操作可能需要1到10分钟才能完成,因此我不希望用户只是坐在屏幕上等待响应,而是显示状态栏或表示事务处理操作的哪个部分.
谢谢
将用户消息存储在配置文件中,然后在整个应用程序中检索某些事件的最佳实践是什么?
我正在考虑使用1个单独的配置文件,例如
REQUIRED_FIELD = {0} is a required field
INVALID_FORMAT = The format for {0} is {1}
Run Code Online (Sandbox Code Playgroud)
等等,然后从类似这样的类中调用它们
public class UIMessages {
public static final String REQUIRED_FIELD = "REQUIRED_FIELD";
public static final String INVALID_FORMAT = "INVALID_FORMAT";
static {
// load configuration file into a "Properties" object
}
public static String getMessage(String messageKey) {
//
return properties.getProperty(messageKey);
}
}
Run Code Online (Sandbox Code Playgroud)
这是解决这个问题的正确方法还是已经有一些事实上的标准?
我正在使用套接字来创建给定服务器的POST请求.响应大部分都回来了,我正在使用编码为"UTF-8"的InputStream来读取服务器的响应.大多数响应是有道理的,我能够正确地查看HTML,但是,看似随机,我看到"1ffa","6e8","1972","90","0"等代码出现我正在读它的响应中的单行.这是我创建和读取响应的方式.
String hostname = "server";
SocketFactory socketFactory = SSLSocketFactory.getDefault();
Socket socket = new Socket(hostname, 8080);
// Create streams to securely send and receive data to the server
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
PrintWriter writer = new PrintWriter(out);
writer.println("POST /handlerServlet http/1.1");
writer.println("Host: " + hostname);
String parameters="params=" + URLEncoder.encode("paramsToEncode", "UTF-8");
writer.println("Content-Length: " + parameters.length());
writer.println("Content-Type: application/x-www-form-urlencoded");
writer.println("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
writer.println("Keep-Alive: 115");
writer.println("Connection: keep-alive");
writer.println("\r\n" + parameters + "\r\n");
writer.flush();
// Read from in and write to out...
String input …Run Code Online (Sandbox Code Playgroud) 你怎么称呼这个界面控件.
您有2个列表,其中一个列表充当您的池,另一个列表作为您当前的值.看起来像这样
[1 ] [1 ]
[2 ] Add>> [2 ]
[3 ] Add All>> [ ]
[4 ] <Remove [ ]
[5 ] <<Remove All [ ]
[6 ] [ ]
Run Code Online (Sandbox Code Playgroud)
无论操作如何,源列表都不会更改.
非常感谢你.
我听说在服务器上运行递归代码会影响性能.这个陈述是多么真实,应该使用递归方法作为最后的手段?
我在Websphere Application Server 6.0(WAS)内部的Websphere Portal Server中运行了一个应用程序.在这个需要很长时间才能完成的特定功能的应用程序中,我正在触发一个执行此操作的新线程.这个新线程从Hibernate打开一个新的Session,并开始用它执行数据库事务.有时(无法看到模式),线程内的事务工作正常,并且该过程成功完成.其他时候我得到以下错误:
org.hibernate.exception.GenericJDBCException: could not load an entity: [OBJECT NAME#218294]
...
Caused by: com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: Connection is closed.
Method cleanup failed while trying to execute method cleanup on ManagedConnection WSRdbManagedConnectionImpl@642aa0d8 from resource jdbc/MyJDBCDataSource. Caught exception: com.ibm.ws.exception.WsException: DSRA0080E: An exception was received by the Data Store Adapter. See original exception message: Cannot call 'cleanup' on a ManagedConnection while it is still in a transaction..
Run Code Online (Sandbox Code Playgroud)
我怎么能阻止这种情况发生?为什么看起来WAS想要杀死我的连接,即使他们没有完成.有没有办法阻止WAS尝试关闭这个特定的连接?
谢谢
我有一个ASP.net页面,其中包含用于过滤数据集的字段.当我应用过滤器(通过按钮)时,结果加载正常.如果我导航到另一个页面(在同一个会话中),然后返回到该页面,我将在页面加载时重新设置过滤器字段的值.
有时,字段会重置正常,有时它们会变回空白.似乎没有任何真正的模式,他们什么时候回来好,当他们回来空白.是否有可能服务器正在缓存请求/响应?(IIS),如果没有,那么可能是什么问题?
你能把一个子类对象以某种方式转换为与父类相同类型的对象,同时切片不属于父类的所有字段吗?
我知道你可以用C++做到这一点,但我不知道如何用Java做到这一点.
我有一个带有一些文字的文字区域.我还有一个"onsubmit"事件处理程序.在那里我有一个文本区域的innerHTML的警报,我得到了textarea内部的文本.然后我尝试将其分配给隐藏输入元素的"value"属性.但是,从未分配值,当表单发布时,隐藏元素没有值.
我甚至尝试过这样的事情
hiddenElement.value = "please work " + textarea.innerHTML;
并且这也不起作用,但是当我这样做并提交表单时,表单处理程序(jsp页面)显示"请工作"作为隐藏输入被接收.
我也检查过firebug,隐藏的元素只提交"请工作",而不是文本区域的innerHTML.
我错过了什么?