【问题标题】:Wicket Form: ERROR - Unable to write file检票表格:错误 - 无法写入文件
【发布时间】:2013-10-28 18:19:39
【问题描述】:

我在检票口中的文件上传表单出现问题。我无法将任何文件上传到在线服务器。

这个脚本已经工作了,但有一段时间它停止了。

所以我搜索答案,但我得到了同样的错误。

我的代码等于:http://www.mkyong.com/wicket/wicket-file-upload-example/ 不同之处在于文件夹路径不像示例中那样是本地的,而是通过 https 指向远程 url。

附加信息:

  • 服务器
    • 操作系统:Debian GNU/Linux 7 (wheezy)
    • Tomcat:Tomcat 7
    • taget 文件夹中的权限:777
  • 本地:
    • Tomcat:Tomcat 7
    • JDK:1.7
    • 检票口:6

测试

  1. 打开上传网站
  2. 选择文件aa.png(服务器中不存在)
  3. 按上传

结果:

28 10 13 18:19:31:630 - ERROR - Unable to write file


java.io.IOException: The filename, directory name, or volume label syntax is incorrect at java.io.WinNTFileSystem.createFileExclusively(Native Method)

28 10 13 18:27:02:370 - ERROR - Unexpected error occurred
org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of interface 

org.apache.wicket.markup.html.form.IFormSubmitListener 
targeted at [Form [Component id = form]] on component [Form [Component id = form]] `threw an exception`

Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.wicket.RequestListenerInterface.
internalInvoke(RequestListenerInterface.java:258)
... 30 more
Caused by: java.lang.IllegalStateException: Error
at com.myproject.presentation.utils.examples.FileUploadPage$1.onSubmit(FileUploadPage.java:51)
at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1246)
at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1240)
at org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:274)
at org.apache.wicket.util.visit.Visits.visitPostOrder(Visits.java:245)
at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1239)
at org.apache.wicket.markup.html.form.Form.process(Form.java:921)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:767)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:700)
... 35 more

【问题讨论】:

  • StackOverflow 是发布代码的地方,而不是代码链接。
  • 首先,由于没有人知道 FileUploadPage.java 的第 51 行是什么,我们必须猜测这是您捕获异常的行,将其抛出以及包含的任何有用信息,然后扔一个新的。从随机站点获取代码并在不了解其作用的情况下使用它是一个非常糟糕的主意。

标签: java tomcat wicket


【解决方案1】:

来自文件的JavaDoc

公共文件(URI uri)

通过将给定的 file: URI 转换为一个新的 File 实例 抽象路径名。

文件的确切形式:URI 是系统相关的,因此 此构造函数执行的转换也是系统相关的。

对于给定的抽象路径名 f,保证

new File( f.toURI()).equals( f.getAbsoluteFile()) 

只要原始抽象路径名、URI 和新的 抽象路径名都是在(可能是不同的调用)中创建的 的)相同的Java虚拟机。这种关系通常 但是,当文件:在虚拟中创建的 URI 时不成立 一个操作系统上的机器被转换为抽象路径名 在不同操作系统的虚拟机中。

参数:

uri - 一个绝对的、分层的 URI,其方案等于“文件”、一个非空路径组件以及未定义的权限、查询和片段组件

投掷:

NullPointerException - 如果 uri 为空

IllegalArgumentException - 如果参数的先决条件不成立

因为: 1.4

没有人谈论 http 或 https。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2019-04-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    相关资源
    最近更新 更多