java webstart问题怎么解决
当时碰到的几个技术问题是:1.从web传递相关的参数给application, 解决办法:用动态jnlp文件(jsp实现jnlp),同时用到如下传参办法 application-descElementTheapplicationelementindicatesthattheJNLPfileislaunchinganapplication(asopposedtoanapplet).Theapplicationelementhasanoptionalattribute,main-class,whichc
当时碰到的几个技术问题是:
1.从web传递相关的参数给application,
解决办法:用动态jnlp文件(jsp实现jnlp),同时用到如下传参办法
application-desc Element
The application element indicates that the JNLP file is launching an application (as opposed to an applet). The application element has an optional attribute, main-class, which can be used to specify the name of the application's main class, i.e., the class that contains the public static void main(String argv[]) method where execution must begin.
The
main-classattribute can be omitted if the first JAR file specified in the JNLP file contains a manifest file containing themainclass.Arguments can be specified to the application by including one or more nested argument elements. For example:
<application-desc main-class="Main">
<argument>arg1argument>
<argument>arg2argument>
application-desc>
2.如何将application处理的结果传回给web server
解决办法,用URLConnection结合从jnlp中传来的web url (为一个后台处理的servlet地址),sessionID(用于识别当前用户,权限等判断)去创建一个新的url对象,并通过它在application和web server之间传递数据。在后台的servlet中通过sessionid,从session listener中找到当前用户,
private String getStringPostRequest(String command) throws Exception {
DataOutputStream dos=null;
ObjectInputStream dis=null;
try {
URLConnection urlConn = new URL(webServerStr).openConnection();
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
urlConn.setAllowUserInteraction(false);
urlConn.setUseCaches(false);
urlConn.setRequestProperty(
"Content-Type",
"application/x-www-form-urlencoded");
dos = new DataOutputStream(urlConn.getOutputStream());
dos.writeBytes(command + "&sessionId=" + this.sessionId);
dos.close();
// read input from servlet
dis =
new ObjectInputStream(urlConn.getInputStream());
String ret = dis.readObject().toString();
dis.close();
return ret;
} catch (Exception e) {
throw e;
} finally{
if ( dos!=null) dos.close();
if ( dis!=null) dis.close();
}
}
后台sevlet:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
HttpSession hSession = request.getSession();
System.out.println("Application:" + hSession.getId());
if(MyListener.getSessionById(request.getParameter("sessionId")) != null)
hSession = MyListener.getSessionById(request.getParameter("sessionId"));
System.out.println("OK" + hSession);
..............}
sessionlistener:
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.*;
public class SessionsListener
implements ServletContextListener, HttpSessionListener
{
static Map map = new HashMap();
public SessionsListener()
{
}
public void contextInitialized(ServletContextEvent servletcontextevent)
{
}
public void contextDestroyed(ServletContextEvent servletcontextevent)
{
}
public void sessionCreated(HttpSessionEvent httpsessionevent)
{
HttpSession httpsession = httpsessionevent.getSession();
map.put(httpsession.getId(), httpsession);
}
public void sessionDestroyed(HttpSessionEvent httpsessionevent)
{
HttpSession httpsession = httpsessionevent.getSession();
map.remove(httpsession.getId());
}
public static HttpSession getSessionById(String s)
{
return (HttpSession)map.get(s);
}
}
3.jar包数字签名问题
4.java webstart cache问题即:JNLP file caching
http://forum.java.sun.com/thread.jspa?forumID=38&threadID=556847
(1)
If you remove the href= parameter from the jnlp tag, Java Web Start 1.4.2 will not cache the jnlp file.
1.5.0 still will, but if you also remove the
(2)
It seems the issue is with generated JNLP files.
Try the following:
response.addDateHeader("Date", Calendar.getInstance().getTime().getTime());
response.addDateHeader("Last-Modified", Calendar.getInstance().getTime().getTime());
Seems to have solved the problem for us.
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















