我整个星期都在研究这个问题的解决方案,虽然已经有类似问题的解决方案,但没有一个能够直接解决和纠正这个问题.
我使用Google App Engine和Google Cloud SQL创建了一个Web应用程序项目.使用eclipse谷歌插件和本地MySQL服务器运行GAE应用程序,该应用程序运行良好.
使用以下命令从命令行运行应用程序时:
sudo /opt/appengine-java-sdk-1.6.1/bin/dev_appserver.sh --jvm_flag=-Drdbms.server=local --jvm_flag=-Drdbms.driver=com.mysql.jdbc.Driver --jvm_flag=-Drdbms.url=jdbc:mysql://localhost:3306/twincam?user=root --port=7070 /home/ben/workspace/Twincam/war
Run Code Online (Sandbox Code Playgroud)
我得到以下内容: -
java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at com.google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver.registerDriver(LocalRdbmsServiceLocalDriver.java:95)
Run Code Online (Sandbox Code Playgroud)
我的类路径引用了我的用户库引用的/Twincam/war/WEB-INF/lib/mysql-connector-java-5.1.18-bin.jar中的mysql-connector.jar,如下面的.classpath文件和目录结构: -
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="com.google.appengine.eclipse.core.GAE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="war/WEB-INF/lib/mysql-connector-java-5.1.18-bin.jar"/>
<classpathentry kind="lib" path="war/WEB-INF/lib/gson-2.1-javadoc.jar"/>
<classpathentry kind="lib" path="war/WEB-INF/lib/gson-2.1-sources.jar"/>
<classpathentry kind="lib" path="war/WEB-INF/lib/gson-2.1.jar"/>
<classpathentry kind="output" path="war/WEB-INF/classes"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

更新:我检查了文件权限,并且都设置为默认值664,所以我确信这不是问题所在.
我在我的控制器中有以下基本操作(用于说明目的),它传递一个MultipartFormData对象并检索图像和文件名.如果不为null则将文件名打印到sbt控制台(它会这样做)然后根据播放http://www.playframework.com/documentation/2.1.0/JavaFileUpload文档希望将其保存到文件中指定的目录中. renameTo(女巫不是).
public static Result uploadProductImage(
Http.MultipartFormData body
) {
Http.MultipartFormData.FilePart image = body.getFile("image");
if (image != null) {
String fileName = image.getFilename();
System.out.println(fileName);
File file = image.getFile();
file.renameTo(new File("/public/images/products", fileName));
}
return products();
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何文档的部分是如何将此文件实际移动到播放项目的公用文件夹中.我注意到scala家伙有这个功能
ref.moveTo()
Run Code Online (Sandbox Code Playgroud)
我知道至少有2到3个其他类似的问题,但它们没有描述如何将文件移动到项目目录.我在这里遗漏了一些根本非常简单的东西,但我无法在网上的任何地方找到它.