I think your lib uses not whitelisted java API or blocked java API
   java.security.AccessControlException: access denied
(java.lang.RuntimePermission
setFactory)


Following your stacktrace the problem comes from
java.net.HttpURLConnection.setFollowRedirect
The method is called by
com.techventus.server.voice.Voice.get(Voice.java:1144)
I searched using Google... is this your lib?
http://code.google.com/p/google-voice-java  ?

If yes, download the latest source code and compile it. The latest version
of Voice.java does not contain the call to
java.net.HttpURLConnection.setFollowRedirect.
It was replaced some revisions ago.
http://code.google.com/p/google-voice-java/source/diff?spec=svn137&old=115&r=135&format=side&path=/trunk/src/com/techventus/server/voice/Voice.java
http://code.google.com/p/google-voice-java/source/browse/trunk/src/com/techventus/server/voice/Voice.java

The jar in the download area was not updated. So you need to download the
source code and compile it by yourself.


   Fabrizio




On Wed, Feb 2, 2011 at 5:34 PM, lovegoogle <sinusek...@gmail.com> wrote:

> Hello All,
>
> I tried using google voice within App Engine and it fails to execute
> because of the custom Security Manager that App Engine uses.
> From the stack trace, it looks like it is failing during the Http
> Connection it needs to make to send SMS.
> My goal is to use SMS feature within my application.
>
> I tried running the same code outside of App Engine runtime, using
> just my JDK as a console app and it works fine.
> The restriction is imposed by App Engine.
>
> Is there any way to get around it or Google Voice is a no no within
> App Engine.
> I would assume that Google Voice is a trusted code since its part of
> google APIs.
>
> Any pointers will really help me...Thanks.
>
> Sinu
>
> Here is the code
> -------------------------------------------------------------------------
>                try
>                {
>                        log.info("going to log in");
>                        Voice voice = new Voice(email, password);
>                        log.info("logged in");
>                        voice.sendSMS(phonenum, message);
>                        log.info("sms sent");
>                        return true;
>                }
>                catch(Exception e)
>                {
>                        e.printStackTrace();
>                        return false;
>                }
> -------------------------------------------------------------------------
>
>
> Here is the stack trace..
>
> -------------------------------------------------------------------------
> going to log in
> https://www.google.com/accounts/ClientLogin - OK
> Logged in to Google - Auth token received
> java.security.AccessControlException: access denied
> (java.lang.RuntimePermission setFactory)
>        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.checkSetFactory(SecurityManager.java:
> 1612)
>        at
> java.net.HttpURLConnection.setFollowRedirects(HttpURLConnection.java:
> 249)
>        at com.techventus.server.voice.Voice.get(Voice.java:1144)
>        at com.techventus.server.voice.Voice.getGeneral(Voice.java:361)
>        at com.techventus.server.voice.Voice.init(Voice.java:262)
>        at com.techventus.server.voice.Voice.<init>(Voice.java:211)
>        at
> com.sinusekhar.cloudapps.zumba.dao.MobileDAO.sendSMS(MobileDAO.java:
> 15)
>        at org.apache.jsp.zumba.jsp.play_jsp._jspService(play_jsp.java:64)
>        at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
> 377)
>        at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
> 313)
>        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
>        at
> com.google.appengine.tools.development.PrivilegedJspServlet.access
> $101(PrivilegedJspServlet.java:23)
>        at com.google.appengine.tools.development.PrivilegedJspServlet
> $2.run(PrivilegedJspServlet.java:59)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at
>
> com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:
> 57)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        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:
> 58)
>        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.headerComplete(HttpConnection.java:923)
>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>        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)
> [WARN] No file found for: /favicon.ico
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-java@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to