GWT - Sardine

flashray

Erfahrenes Mitglied
Hallo,

ich möchte innerhalb einer GWT Applikation Dateien von der lokalen Festplatte auf einen WebDAV-Server hochladen...

Dazu verwende ich die Library Sardine...

Die Methoden von Sardine funktionieren für hochladen, erstellen von Verzeichnissen aus einem Standalone Programm (main-Methode) einwandfrei.

Leider funktioniert das gleiche nicht mit GWT. Probiere schon nun seit viiiiiiieeeelen Stunden ohne Erfolg! :(

Ich weiss nicht wie ich die AccesControlException aushebeln könnte

Wäre um jeden Hinweis sehr dankbar!


Code:
2010-06-29 22:50:14.175 java[21810:a07] [Java CocoaComponent compatibility mode]: Enabled
2010-06-29 22:50:14.178 java[21810:a07] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
Initializing AppEngine server
   [WARN] ********************************************************
There is a new version of the SDK available.
-----------
Latest SDK:
Release: 1.3.4
Timestamp: Fri May 14 23:26:11 CEST 2010
API versions: [1.0]

-----------
Your SDK:
Release: 1.3.2
Timestamp: Wed Mar 17 20:19:29 CET 2010
API versions: [1.0]

-----------
Please visit http://code.google.com/appengine for the latest SDK.
********************************************************

29.06.2010 20:50:15 com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
29.06.2010 20:50:15 com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed /Users/reggy/Documents/eclipse_workspace/GWT_Test_New/war/WEB-INF/appengine-web.xml
29.06.2010 20:50:15 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed /Users/reggy/Documents/eclipse_workspace/GWT_Test_New/war/WEB-INF/web.xml
The server is running at http://localhost:8888/
29.06.2010 20:50:49 com.google.appengine.tools.development.ApiProxyLocalImpl log
SCHWERWIEGEND: [1277844649236000] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String mypackage.client.GreetingService.greetServer2(java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: java.security.AccessControlException: access denied (java.net.SocketPermission box.net resolve)
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.security.AccessControlException: access denied (java.net.SocketPermission box.net resolve)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
    at java.lang.SecurityManager.checkConnect(SecurityManager.java:1031)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1146)
    at java.net.InetAddress.getAllByName(InetAddress.java:1084)
    at java.net.InetAddress.getAllByName(InetAddress.java:1020)
    at java.net.InetAddress.getByName(InetAddress.java:970)
    at java.net.InetSocketAddress.<init>(InetSocketAddress.java:124)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
    at com.googlecode.sardine.SardineImpl.executeWrapper(SardineImpl.java:421)
    at com.googlecode.sardine.SardineImpl.createDirectory(SardineImpl.java:381)
    at mypackage.server.GreetingServiceImpl.greetServer2(GreetingServiceImpl.java:57)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
    ... 30 more

com.google.gwt.user.client.rpc.StatusCodeException: The call failed on the server; see server log for details

Vg Erdal
 
es gibt eine Möglichkeit, indem man die SecurityProvider Klasse überschreibt. Das ist nicht so schwierig!
 
Zurück