好吧,我不得不说到目前为止,这个让我难过.我们在Tomcat 6.0.18中运行的Web应用程序在文件上载期间失败,但仅当客户端计算机是Windows计算机时,仅适用于某些计算机,并且适用于所有浏览器,而不仅仅是IE.
日志中有一个堆栈跟踪,这似乎表明客户端关闭了连接,或者流以某种方式被破坏.堆栈跟踪的根本原因如下:
Caused by: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly
at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:983)
at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
at java.io.InputStream.read(InputStream.java:85)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:362)
... 70 more
Run Code Online (Sandbox Code Playgroud)
导致跟踪的代码看起来相当直接.
private Map<String, Object> getMap( ActionRequest request ) {
HashMap<String, Object> parameters = new HashMap<String, Object>();
if ( request == null ) {
return parameters;
}
if ( request.getContentType() == null ) {
return parameters;
}
try {
if(PortletFileUpload.isMultipartContent(request)){
DiskFileItemFactory factory = new DiskFileItemFactory();
PortletFileUpload upload = new PortletFileUpload(factory);
List<DiskFileItem> fileItems = upload.parseRequest(request);
for( …Run Code Online (Sandbox Code Playgroud) 由于某种原因,Windows进程崩溃了.我需要分析崩溃转储.
在Windows 2003中,PC运行状况帮助我们找到了故障转储文件.
如何在Windows 2008中获取故障转储文件位置?
我想做这个:
string s = "abc";
s[1] = 'x';
Run Code Online (Sandbox Code Playgroud)
s将成为"axc".但是,似乎string [i]只有一个getter并且没有setter.编译器给我以下错误:
"属性或索引器'string.this [int]'无法分配给 - 它是只读的"
我想我可以制作一个循环并改变我想要的字符.但我只是想知道是否有一个简单的方法来做到这一点?为什么没有字符串[i]的setter?
提前致谢.
我正在尝试将异步版Google Analytics跟踪代码添加到网站中.
我想将JavaScript保存在一个单独的文件中,并从那里调用它.
这是我目前在.js文件中得到的内容:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function loadtracking() {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
}
addLoadEvent(loadtracking);
Run Code Online (Sandbox Code Playgroud)
这就是我在<head>母版页面标签中的内容:
<script …Run Code Online (Sandbox Code Playgroud) javascript asynchronous google-analytics unobtrusive-javascript
我真的无法弄明白.我是Mercurial和TortoiseHg的新手.阅读了很多文档,仍然无法找到答案.我知道分支的一种方法是制作副本.多数民众赞成,但有另一种称为"命名分支"的方式,但这是我无法理解的一件事.
例如,我有新的repo第一个分支被称为"默认".然后我添加了3个名为"test1 ... 3"的分支.现在在repo浏览器中我有这样的树:
* test3
|
* test2
|
* test1
|
* default
Run Code Online (Sandbox Code Playgroud)
如何实现这样的事情:
* test 1
| _______* test 2
| | ______* test 3
| ||
|//
* default
Run Code Online (Sandbox Code Playgroud)
分支到"branch3"后如何切换回"默认".添加一些东西后提交并切换回"branch3"?
任何人都可以告诉我为什么sagepay抛出5006(无法重定向到供应商的网站.),我可以将交易发布到sagepay并且能够在sagepay结束时提供信用卡信息.但是,我的问题是,一旦它返回我的通知页面,它会抛出错误5006.
我无法达到我的成功或失败的URL.
我经常遇到想要Enumerable<T>从方法或属性返回的情况.为了构建返回Enumerable<T>,我使用List<T>-instance.填写列表后,我返回列表.
我一直认为这就够了.但它存在这样的可能性:调用者将结果投射Enumerable<T>回List<T>并开始进一步使用它.如果稍后我更改了我的方法的实现,则调用者的代码将失败.为了避免这种情况,我可以返回list.ToArray或制作一个只读列表,然后再将其返回给调用者.但对我来说,这似乎是一个很大的矫枉过正.你怎么看?
请注意,我永远不会返回内部使用的列表,以便调用者可以更改我的对象内部状态.问题只是关于一个简短的生活清单,它是临时建立的,用于保存返回值.
IEnumerable<string> GetAList() {
List<string> aList = new List<string>();
aList.Add("a");
aList.Add("b");
return aList;
}
IEnumerable<string> GetAList() {
List<string> aList = new List<string>();
aList.Add("a");
aList.Add("b");
return aList.ToArray<string>();
}
Run Code Online (Sandbox Code Playgroud)
这些例子非常简单,在这种情况下,我会从一开始就使用数组,但它只是为了解释这个问题.
有没有办法设置在应用程序不支持设备UI语言时使用的默认语言?
示例:我的应用已本地化为英语和德语:
// en.lproj:
"POWER_TO_THE_PEOPLE_BTN" = "Power";
"POWER_PLUG_BTN" = "Power";
// de.lproj:
"POWER_TO_THE_PEOPLE_BTN" = "Macht";
"POWER_PLUG_BTN" = "Spannung";
Run Code Online (Sandbox Code Playgroud)
现在,如果我在设置为Italian应用程序的UI语言的设备上运行应用程序将使用键字符串POWER_TO_THE_PEOPLE_BTN和POWER_PLUG_BTN.
必须有一种方法来指定应用程序在这种情况下使用的默认(回退)语言.
从上面的例子中可以清楚地看出,使用英文字符串作为键是行不通的.
我现在看到的唯一选择是使用NSLocalizedStringWithDefaultValue而不是NSLocalizedString.
我知道volatile关键字,
volatile int k=7;
Run Code Online (Sandbox Code Playgroud)
我们提示编译器可以随时更改变量但是简单
int k=7呢?我们可以随时更改它,因为它不是恒定的吗?有什么不同吗?
我需要使用合理的单位将文件大小显示为String.
例如
1L ==> "1 B";
1024L ==> "1 KB";
2537253L ==> "2.3 MB"
Run Code Online (Sandbox Code Playgroud)
等等
我提出了自己的解决方案,它有类似的缺点:
private static final long K = 1024;
private static final long M = K * K;
private static final long G = M * K;
private static final long T = G * K;
public static String convertToStringRepresentation(final long value){
final long[] dividers = new long[] { T, G, M, K, 1 };
final String[] units = new String[] …Run Code Online (Sandbox Code Playgroud) c# ×2
java ×2
string ×2
apache ×1
asynchronous ×1
branch ×1
c++ ×1
char ×1
crash-dumps ×1
file-upload ×1
format ×1
ios ×1
javascript ×1
localization ×1
mercurial ×1
numbers ×1
opayo ×1
payment ×1
php ×1
tomcat6 ×1
tortoisehg ×1
upload ×1