从tomcat上将web应用移植到apusic应用服务器可能会出现以下问题:
应用中如果有代码Test.class.getResource("/").toString,则在tomcat下得到的是%tomcat_home%/webapps/your_web_app/WEB-INF/classes/,而在apusic下得到的是DOMAIN_HOME(类似C:\Apusic-6.0\domains\mydomain)。
产生这个问题的原因是在apusic源码中默认是先用app或者system classloader来getResource(String name),而tomcat默认是先用自己的classloader来getResource.而如果是getResource("/")则app或者system classloader会获取DOMAIN_HOME这个结果。
所以解决此兼容性问题的方法有三种:
1、修改Test.class.getResource("/").toString中"/"为"//",这样父classloader就无法找到DOMAIN_HOME,而返回子classloader获取的路径。
2、在配置文件vm.options中添加参数apusic.prefer.war.classes=true,使apusic先使用自己的classloader来getResource。
3、Test.class.getResource("/").toString,改成Test.class.getClassLoader().getResource("/").toString 也可以解决问题。
以上三种方法都可以获取DOMAIN_HOME/application/WEB-INF/classes/路径,其中方法3跟方法2的原理是一样的。
分享到:
相关推荐
... ... ... import javax.servlet.RequestDispatcher;...import javax.servlet.ServletContext;... response.sendRedirect("../admin/success.jsp"); }else{ //失败跳转回登录页面 //out.println("登录失败"); ...
这个问题是在著名的问答网站——stackoverflow上看到的。 之前也看到过JavaScript的这个问题,但是没有深入了解,今天在StackOverflow上看到了答案,感觉不错,记下来分享给大家。问题的描述是这样的: 代码如下: ...
String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new ...
1. 下载并解压 VereMVC.zip 文件 2.打开 Eclipse 新建一个 test 项目 Eclipse -> File -> New -> Dynamic Web Project ...9.启动 tomcat 在浏览器地址栏输入 http://localhost:8080/test/test 将会看到结果
lblSum.Text = (myInfo.Info.TotalPhysicalMemory / 1024).ToString(); //获取可用物理内存总量 pbMemoryUse.Maximum = Convert.ToInt32(myInfo.Info.TotalPhysicalMemory / 1024 / 1024); pbMemoryUse.Value = ...
打开 Eclipse 新建一个 test 项目 Eclipse -> File -> New -> Dynamic Web Project 将解压后 VereMVC/lib 目录下面的 jar 包拷贝到 test/WebContent/WEB-INF/lib 里面 commons-fileupload-1.2.1.jar ...
HttpGet httpGetRequest = new HttpGet(urlGet);//创建HttpPost对象 try { HttpResponse httpResponse = new DefaultHttpClient().execute(httpGetRequest); if(httpResponse.getStatusLine().getStatusCode...
SmsManager smsManager = SmsManager.getDefault();//得到SmsManager Intent intentSend = new Intent("SMS_SEND_ACTION");//创建Intent PendingIntent sendPI = PendingIntent.getBroadcast...
Android 获取移动网络及SIM卡运营商信息,可获取到SIM卡国别、SIM卡序列号、SIM卡状态、运营商代号、手机制式等信息。获取各个数据项的值: ... listValues.add(tm.getCellLocation().toString());//获取设备当前位置
System.out.print(path.get(z).toString() + " "); } } private void ginit() { int i; for (i = 0; i ; i++) { nodeList.add(new Node("node" + i)); } ((Node)nodeList.get(0))....
DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 //获取日期 DateTime.Now.ToLongDateString().ToString(); // 2008年9月4日 DateTime.Now....
public class SpringTest { public static void main(String[] args) { //创建spring的ApplicationContext ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //...
public static void main(String[] args) { // TODO Auto-generated method stub Sort s=new Sort(); int[] arr = { 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4,... System.out.println(Arrays.toString(arr)); }
String smsStr=etSms.getText().toString();//得到短信的文本 Set keySet = peoples.keySet();//得到键值集合 Iterator ii = keySet.iterator(); people.setText("");//置空 while(ii.hasNext()){//循环...
String urlString = request.getRequestURL().toString(); String queryString = request.getQueryString(); String queryStringEncode = null; String url; if (queryString != null) { queryStringEncode =...
System.out.println(o.toString()); //得到字符串 System.out.println(o.names().get(2)); //获取对象中第三组属性名 System.out.println(o.names().length()); //获取对象中属性个数 //System.out.println(o....
数据库api简化提高性能, 达到和greenDao一致的性能. 图片绑定支持gif, webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转... 使用Gradle构建时添加一下依赖即可: compile 'org.xutils:xutils:3.1.+' // or // ...
Android LinearLayout结合TextView选择列表项数据,在虚拟机上是单击鼠标选中一行数据,在手机上则是手触摸一下即选择对应数据行,循环生成每行的包含对应各个列数据的Map;col1、col2、col3为列名,可参考相关代码...
Excel.ApplicationClass MyExcel = new Excel.ApplicationClass(); MyExcel.Visible = true; if (MyExcel == null) { MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon....
public class Main{ public static void main(String[]args){ Scanner in=new Scanner(System.in); while(in.hasNext()){//has.Next()判断还有没有输入; int n=in.nextInt(); BigInteger m=BigInteger.valueOf...