[appengine-java] data in xml format from data store

2010-11-29 Thread pac
In a website I need to provide a feature to get data in xml format
i.e. some url

e.g.
http://www.mysite.com../data.xml

I think in gae I can not create a file. Any suggestions to create such
feature to get data from data store in this way?

Data store will have large number of records, so in general, a file
created from that could be of good few MBs.

-- 
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-j...@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.



[appengine-java] Re: data in xml format from data store

2010-11-29 Thread Didier Durand
Hi,

To emulate files, you have to use the Blob object in the datastore to
store such xml content: see com.google.appengine.api.datastore.Blob in
http://code.google.com/appengine/docs/java/datastore/dataclasses.html#Core_Value_Types

Blob has a limited max size: 1 Mbyte. So, you can use a collection
(Vector, List, etc..)  of Blobs if you need more than 1 Mbytes.

If your files get uploaded by a client, you can use the Blobstore
where the max size is much bigger(2 Gbytes): see
http://code.google.com/appengine/docs/java/blobstore/overview.html

You have to associate the blob with some other fields (name, size,
last_updated) in you pojo to reproduce what you expect from a file.

N.B. if you need to emulate a directory tree, you also have to write
it by yourself.

Finally, I would recommend alternative Objectify rather than standard
JDO for such services.

Hope this helps

regards
didier

On Nov 29, 5:53 pm, pac parvez.chau...@gmail.com wrote:
 In a website I need to provide a feature to get data in xml format
 i.e. some url

 e.g.http://www.mysite.com../data.xml

 I think in gae I can not create a file. Any suggestions to create such
 feature to get data from data store in this way?

 Data store will have large number of records, so in general, a file
 created from that could be of good few MBs.

-- 
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-j...@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.



Re: [appengine-java] Re: data in xml format from data store

2010-11-29 Thread Stephen Johnson
It sounds like you want to send a xml file to the client not upload an xml
file. If so, you can use the standard XML document classes (see the
org.w3c.dom package). Build up your document then you can convert it to a
String using an empty Transform (see the javax.xml.transform and javax.xml
packages).
Make sure you set the header:
 Content-Disposition: attachment; filename=file name.ext

(Google Content-Disposition and Forcing Save As for more info).

Be aware that you only have 30 seconds in which to do this. Also, there is a
10 MB limit on the download so you might want to compress it before sending
it. Google's infrastructure will compress if the requester indicates it can
handle it, but I'm not sure if the 10MB limit is measured before or after
compression takes place (Anyone know the answer to this). My guess is that
it is measured against the data that is returned from your servlet before
the compression.

If you can't get it to work within the 30sec/10MB limits, you might have to
pre-build your document using a task which when 1.4 is released will give
you a 10 minute window to create the file and then can store the file in the
Blobstore.

Stephen

On Mon, Nov 29, 2010 at 10:14 AM, Didier Durand durand.did...@gmail.comwrote:

 Hi,

 To emulate files, you have to use the Blob object in the datastore to
 store such xml content: see com.google.appengine.api.datastore.Blob in

 http://code.google.com/appengine/docs/java/datastore/dataclasses.html#Core_Value_Types

 Blob has a limited max size: 1 Mbyte. So, you can use a collection
 (Vector, List, etc..)  of Blobs if you need more than 1 Mbytes.

 If your files get uploaded by a client, you can use the Blobstore
 where the max size is much bigger(2 Gbytes): see
 http://code.google.com/appengine/docs/java/blobstore/overview.html

 You have to associate the blob with some other fields (name, size,
 last_updated) in you pojo to reproduce what you expect from a file.

 N.B. if you need to emulate a directory tree, you also have to write
 it by yourself.

 Finally, I would recommend alternative Objectify rather than standard
 JDO for such services.

 Hope this helps

 regards
 didier

 On Nov 29, 5:53 pm, pac parvez.chau...@gmail.com wrote:
  In a website I need to provide a feature to get data in xml format
  i.e. some url
 
  e.g.http://www.mysite.com../data.xml
 
  I think in gae I can not create a file. Any suggestions to create such
  feature to get data from data store in this way?
 
  Data store will have large number of records, so in general, a file
  created from that could be of good few MBs.

 --
 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-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-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-j...@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.



[appengine-java] Re: data in xml format from data store

2010-11-29 Thread pac
A client will download a xml file instead of uploading.
Records will be created (or updated, deleted) in a table/kind over
time and all records from a kind need to be downloaded in form of a
xml file, I hope I am explaining the issue bit more clearly.

I am not sure if I could make use of blobstore in this case as it will
require update of blobstore object (in background may be using task)
every time a record gets added/updated/deleted i.e. if I create xml
file programmaticaly and store as blobstore object.


On Nov 29, 5:14 pm, Didier Durand durand.did...@gmail.com wrote:
 Hi,

 To emulate files, you have to use the Blob object in the datastore to
 store such xml content: see com.google.appengine.api.datastore.Blob 
 inhttp://code.google.com/appengine/docs/java/datastore/dataclasses.html...

 Blob has a limited max size: 1 Mbyte. So, you can use a collection
 (Vector, List, etc..)  of Blobs if you need more than 1 Mbytes.

 If your files get uploaded by a client, you can use the Blobstore
 where the max size is much bigger(2 Gbytes): 
 seehttp://code.google.com/appengine/docs/java/blobstore/overview.html

 You have to associate the blob with some other fields (name, size,
 last_updated) in you pojo to reproduce what you expect from a file.

 N.B. if you need to emulate a directory tree, you also have to write
 it by yourself.

 Finally, I would recommend alternative Objectify rather than standard
 JDO for such services.

 Hope this helps

 regards
 didier

 On Nov 29, 5:53 pm, pac parvez.chau...@gmail.com wrote:

  In a website I need to provide a feature to get data in xml format
  i.e. some url

  e.g.http://www.mysite.com../data.xml

  I think in gae I can not create a file. Any suggestions to create such
  feature to get data from data store in this way?

  Data store will have large number of records, so in general, a file
  created from that could be of good few MBs.

-- 
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-j...@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.



[appengine-java] Re: data in xml format from data store

2010-11-29 Thread pac
Sorry, did not see your post earlier Stephen.

I was not aware of this 10 minute feature to create a file, I will
look into.

File size will be greater then 10MB, it is an existing website which I
am thinking to port to gae, file size already gets around 12MB or so.

So I guess more than 10MB download will be an issue and I guess
download should also complete in 30 second, is that so?

On Nov 29, 5:37 pm, pac parvez.chau...@gmail.com wrote:
 A client will download a xml file instead of uploading.
 Records will be created (or updated, deleted) in a table/kind over
 time and all records from a kind need to be downloaded in form of a
 xml file, I hope I am explaining the issue bit more clearly.

 I am not sure if I could make use of blobstore in this case as it will
 require update of blobstore object (in background may be using task)
 every time a record gets added/updated/deleted i.e. if I create xml
 file programmaticaly and store as blobstore object.

 On Nov 29, 5:14 pm, Didier Durand durand.did...@gmail.com wrote:

  Hi,

  To emulate files, you have to use the Blob object in the datastore to
  store such xml content: see com.google.appengine.api.datastore.Blob 
  inhttp://code.google.com/appengine/docs/java/datastore/dataclasses.html...

  Blob has a limited max size: 1 Mbyte. So, you can use a collection
  (Vector, List, etc..)  of Blobs if you need more than 1 Mbytes.

  If your files get uploaded by a client, you can use the Blobstore
  where the max size is much bigger(2 Gbytes): 
  seehttp://code.google.com/appengine/docs/java/blobstore/overview.html

  You have to associate the blob with some other fields (name, size,
  last_updated) in you pojo to reproduce what you expect from a file.

  N.B. if you need to emulate a directory tree, you also have to write
  it by yourself.

  Finally, I would recommend alternative Objectify rather than standard
  JDO for such services.

  Hope this helps

  regards
  didier

  On Nov 29, 5:53 pm, pac parvez.chau...@gmail.com wrote:

   In a website I need to provide a feature to get data in xml format
   i.e. some url

   e.g.http://www.mysite.com../data.xml

   I think in gae I can not create a file. Any suggestions to create such
   feature to get data from data store in this way?

   Data store will have large number of records, so in general, a file
   created from that could be of good few MBs.

-- 
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-j...@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.



[appengine-java] Re: Session Management on GAE

2010-11-29 Thread Stefan
Hi Alexander,

Google also provides a servlet to help with deleting stale session
info. Have a look at this thread:

http://groups.google.com/group/google-appengine-java/browse_thread/thread/4f0d9af1c633d39a

Best regards,
Stefan

On 23 Nov., 18:06, Alexander Arendar alexander.aren...@gmail.com
wrote:
 thank you Stephen :) you really helped

 On Tue, Nov 23, 2010 at 6:31 PM, Stephen Johnson 
 onepagewo...@gmail.comwrote:







  Hi Alexander,
  I'm sorry but I don't work for Google (however I did stay at a Holiday Inn
  Express last night) so I can't write it in the docs this information and I
  don't know that it's documented anywhere. Also note that the _ah_SESSION
  table does not remove expired sessions, you will need to clean up this
  yourself.
  Stephen

  On Mon, Nov 22, 2010 at 12:43 PM, Alexander Arendar 
  alexander.aren...@gmail.com wrote:

  Hi Stephen,

  Would also be great if you write such limitations somewhere in the
  documentation.
  Or maybe it is already described but I missed the link. In such case
  please drop the link.

  Sincerely,
  Alex

  On Mon, Nov 22, 2010 at 8:39 PM, Stephen Johnson 
  onepagewo...@gmail.comwrote:

  From what I know you don't get sessionDestroyed. I believe there's a
  couple of issues with notification of a destroyed session and the most
  significant one would be that there's no guarantee that an instance of 
  your
  application will even be running (1.4.0 will allow reserved instances but
  that isn't out yet.) Other issues would be that since this is a 
  distributed
  environment which instance should receive sessionDestroyed. GAE would have
  to implement this one their backend. I believe sessions currently are just
  created by the Servlet Context of an instance when necessary and that
  instance's sessionCreated is the one that is executed.

  You however can query the _ah_SESSION table to see if a given session is
  still active or has expired.

  On Mon, Nov 22, 2010 at 9:32 AM, Sergiy Arendar 7ser...@gmail.comwrote:

  Hi, I have a problem:
  In my application I'm using HttpSessionListener to manage sessions.
  Here is the class:

  package com.sergiyarendar.listeners;

  import java.util.logging.Logger;
  import javax.servlet.http.HttpSessionEvent;
  import javax.servlet.http.HttpSessionListener;
  import com.sergiyarendar.services.CounterService;

  public class SessionListener implements HttpSessionListener{
         private static final Logger log =
  Logger.getLogger(SessionListener.class.getName());
         private static int sessionNumber;
         public void sessionCreated(HttpSessionEvent se){
                 log.info(Session Created);
                 sessionNumber = CounterService.getSessionNumber();
                 sessionNumber++;
                 CounterService.setSessionNumber(sessionNumber);
     }
         public void sessionDestroyed(HttpSessionEvent se){
                 log.info(Session Destroyed);
                 sessionNumber = CounterService.getSessionNumber();
                 sessionNumber--;
                 CounterService.setSessionNumber(sessionNumber);
         }
  }

  This is what I have in web.xml file:

  listener

   listener-classcom.sergiyarendar.listeners.SessionListener/listener-
  class
  /listener

  The problem is that public void sessionCreated(HttpSessionEvent se)
  method is invoked if a new session is created, BUT public void
  sessionDestroyed(HttpSessionEvent se) method is never invoked. I'm
  setting the timeout for the sessions using setMaxInactiveInterval(120)
  method when the session begin.

  Can anyone say me what is the problem? Is it a GAE bug, or some thing
  is wrong with my code? Please, it is very important, becouse whithout
  sessionDestroyed() method I can't do any tasks of session management
  when the session is destroyed.

  --
  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-j...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B
   unsubscr...@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-j...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B
   unsubscr...@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-j...@googlegroups.com.
  To unsubscribe from this group, send email to
  

[appengine-java] no async queries on AsyncDatastoreService for 1.4.0?

2010-11-29 Thread Luke
i was taking a look at the 1.4.0 javadoc for AsyncDatastoreService.  i
see the get, put and delete operations return a Future, but the
prepare methods return a naked PreparedQuery object, and it doesn't
look like PreparedQuery has any async get methods.

does the AsyncDatastoreService not support asynchronous queries, or is
there something i'm missing?

glad to see at lets the get and put methods are async, hoping to get
async queries too (as well as async interfaces to more services).

-- 
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-j...@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.



[appengine-java] updating object with owned one to one relationship.

2010-11-29 Thread clement boret
hello.
I have a problem when trying to update an object that has already been
saved in the dataStore
An Employee and Contactnfo.  One employee has a contactInfo...

//
//
//
@PersistenceCapable(detachable = true)
public class Employee implements Serializable {

  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Key key;

  @Persistent
  private ContactInfo contactInfo = null;

  public ContactInfo getContactInfo() {
return contactInfo;
  }

  public void setContactInfo(ContactInfo contactInfo) {
this.contactInfo = contactInfo;
  }

  public Key getKey() {
return key;
  }
}
//
//
//
@PersistenceCapable(detachable = true)
public class ContactInfo implements Serializable {

  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Key key;

  @Persistent
  private String name;

  public String getName() {
return name;
  }

  public void setName(String name) {
this.name = name;
  }

  public Key getKey() {
return key;
  }

  public void setKey(Key key) {
this.key = key;
  }
}
//
//
//
my servlet:

public class GreetingServiceImpl extends RemoteServiceServlet
implements GreetingService {

  private static final PersistenceManagerFactory pmfInstance =
JDOHelper.getPersistenceManagerFactory(transactions-optional);

  public String greetServer(String input) {
String result = ;

//step1 create and save an employee in the datastore.
Key key = storeEmployeeInDatastore();

//step2 retrieve the employee from the datastore and detach it
Employee detachedEmployee = getDetachedEmployee(key);

//step3 modify the detached employee
ContactInfo contactInfo2 = new ContactInfo();
detachedEmployee.setContactInfo(contactInfo2);

//step4 save the modified employee...
updateEmployeeInDataStore(detachedEmployee);

return result;
  }

  /**
   * @return the key of the employee that has been stored
   */
  private Key storeEmployeeInDatastore() {
Employee employee = new Employee();
ContactInfo contactInfo = new ContactInfo();
employee.setContactInfo(contactInfo);

//creates a new manager.
PersistenceManager manager1 = pmfInstance.getPersistenceManager();
Key key = null;

try {
  manager1.makePersistent(employee);
  key = employee.getKey();
}
catch ( Exception e ) {
  e.printStackTrace();
}
finally {
  //equivalent to manager1.close()
  manager1.close();
}
return key;
  }

  private Employee getDetachedEmployee(Key key) {
PersistenceManager manager2 = pmfInstance.getPersistenceManager();
Employee attached = manager2.getObjectById(Employee.class, key);

Employee detachedEmployee = manager2.detachCopy(attached);
manager2.close();
return detachedEmployee;
  }

  private void updateEmployeeInDataStore(Employee detachedEmployee) {
PersistenceManager manager3 = pmfInstance.getPersistenceManager();
try {

  Employee bidon = manager3.makePersistent(detachedEmployee);

  System.out.println();
}
catch ( Exception e ) {
  e.printStackTrace();
}
finally {
  manager3.close();
}
  }
}

///
///
///
HERE IS THE ERROR I GET
org.datanucleus.store.appengine.DatastoreRelationFieldManager
$ChildWithoutParentException: Detected attempt to establish
Employee(4) as the parent of ContactInfo(6) but the entity identified
by ContactInfo(6) has already been persisted without a parent.  A
parent cannot be established or changed once an object has been
persisted.
at
org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:
354)
at
org.datanucleus.jdo.JDOPersistenceManager.close(JDOPersistenceManager.java:
281)
at
com.gae.server.GreetingServiceImpl.updateEmployeeInDataStore(GreetingServiceImpl.java:
85)
at
com.gae.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:
33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Re: [appengine-java] Re: data in xml format from data store

2010-11-29 Thread Stephen Johnson
I believe the 30 second limit is imposed on the time it takes for your
servlet to finish. Thus, if your servlet finished generating and returning
the file to the AppEngine infrastructure in 29 seconds, then I think you
will be safe even though it might take another minute or two for Google's
infrastructure to stream it to the client. I have not tested this though.
Can anyone confirm or deny this assumption on my part.

On Mon, Nov 29, 2010 at 10:57 AM, pac parvez.chau...@gmail.com wrote:

 Sorry, did not see your post earlier Stephen.

 I was not aware of this 10 minute feature to create a file, I will
 look into.

 File size will be greater then 10MB, it is an existing website which I
 am thinking to port to gae, file size already gets around 12MB or so.

 So I guess more than 10MB download will be an issue and I guess
 download should also complete in 30 second, is that so?

 On Nov 29, 5:37 pm, pac parvez.chau...@gmail.com wrote:
  A client will download a xml file instead of uploading.
  Records will be created (or updated, deleted) in a table/kind over
  time and all records from a kind need to be downloaded in form of a
  xml file, I hope I am explaining the issue bit more clearly.
 
  I am not sure if I could make use of blobstore in this case as it will
  require update of blobstore object (in background may be using task)
  every time a record gets added/updated/deleted i.e. if I create xml
  file programmaticaly and store as blobstore object.
 
  On Nov 29, 5:14 pm, Didier Durand durand.did...@gmail.com wrote:
 
   Hi,
 
   To emulate files, you have to use the Blob object in the datastore to
   store such xml content: see com.google.appengine.api.datastore.Blob
 inhttp://code.google.com/appengine/docs/java/datastore/dataclasses.html...
 
   Blob has a limited max size: 1 Mbyte. So, you can use a collection
   (Vector, List, etc..)  of Blobs if you need more than 1 Mbytes.
 
   If your files get uploaded by a client, you can use the Blobstore
   where the max size is much bigger(2 Gbytes): seehttp://
 code.google.com/appengine/docs/java/blobstore/overview.html
 
   You have to associate the blob with some other fields (name, size,
   last_updated) in you pojo to reproduce what you expect from a file.
 
   N.B. if you need to emulate a directory tree, you also have to write
   it by yourself.
 
   Finally, I would recommend alternative Objectify rather than standard
   JDO for such services.
 
   Hope this helps
 
   regards
   didier
 
   On Nov 29, 5:53 pm, pac parvez.chau...@gmail.com wrote:
 
In a website I need to provide a feature to get data in xml format
i.e. some url
 
e.g.http://www.mysite.com../data.xml
 
I think in gae I can not create a file. Any suggestions to create
 such
feature to get data from data store in this way?
 
Data store will have large number of records, so in general, a file
created from that could be of good few MBs.

 --
 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-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-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-j...@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.



Re: [appengine-java] no async queries on AsyncDatastoreService for 1.4.0?

2010-11-29 Thread Max Ross (Google)
Hi Luke,

First the awesome news:
As of 1.4.0, many queries are implicitly asynchronous.  When you call
PreparedQuery.asIterable() or PreparedQuery.asIterator(), we initiate the
query in the background and then immediately return.  This lets you do work
while the first batch of results is being fetched.  And, when the first
batch has been consumed we immediately request the next batch.  If you're
performing a significant amount of work with each Entity as you iterate you
will probably see a latency win as a result of this.

Now the less awesome news:
We didn't get around to making the List returned by PreparedQuery.asList()
work this same magic, but you can expect this in a future release.

Some deeper thoughts:
The underlying RPCs between your app and the datastore fetch results in
batches.  We fetch an initial batch of results, and once that batch has been
consumed we fetch the next batch.  But, there's nothing in the API that maps
to these batches - it's either a List containing the entire result set or an
Iterable/Iterator that returns Entities one at a time.  An API that provides
async access to the individual results returned by an Iterable/Iterator
(IteratorFutureEntity) doesn't really make sense since you don't know
which call to hasNext() is going to require a new batch to be fetched, and
without that knowledge, the knowledge of what is going to trigger something
expensive, you can't really make appropriate use of an asynchronous API.

Going forward, we're definitely interested in exposing these batches
directly, and an explicitly async API for these batches makes a lot of sense
since fetching these batches would map directly to something expensive on
the server side.

Hope this helps,
Max

On Fri, Nov 26, 2010 at 4:41 PM, Luke lvale...@gmail.com wrote:

 i was taking a look at the 1.4.0 javadoc for AsyncDatastoreService.  i
 see the get, put and delete operations return a Future, but the
 prepare methods return a naked PreparedQuery object, and it doesn't
 look like PreparedQuery has any async get methods.

 does the AsyncDatastoreService not support asynchronous queries, or is
 there something i'm missing?

 glad to see at lets the get and put methods are async, hoping to get
 async queries too (as well as async interfaces to more services).

 --
 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-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-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-j...@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.



[appengine-java] Re: 1.4.0 Preview and Channel API

2010-11-29 Thread Scott
Is the HTML snippet the full client code? If so you need to call the
createChannel service from the client prior to opening the socket.
Also what does the ?key=dev do for you in your script import?

Good luck!

Scott

On Nov 29, 7:20 am, James M jmort...@gmail.com wrote:
 Hi Scott,

 I'm trying to follow your example but am getting stuck.  I've created
 the following controllers:

 /** create the channel **/
  public ModelAndView createChannel(HttpServletRequest request,
 HttpServletResponse response) {
           ChannelService channelService =
 ChannelServiceFactory.getChannelService();
       channelService.createChannel(coupoz);

       return constructModelAndView(example);

   }

 /** send a message **/
   public ModelAndView sendMessage(HttpServletRequest request,
 HttpServletResponse response) {
       ChannelService channelService =
           ChannelServiceFactory.getChannelService();
                       channelService.sendMessage(new
           ChannelMessage(coupoz,test));

           return constructModelAndView(example);
   }

 // NOTE:  both controllers return a JSON string.

 I also have an HTML file:

 html
 head
 script src=_ah/channel/jsapi?key=dev/script
 script
          var channel = new goog.appengine.Channel(coupoz);
          var   socket = channel.open();
             socket.onopen = function() {
                 console.info(socket opened...);
             }
             socket.onmessage = function(evt) {
                  var o = JSON.parse(evt.data);
                  alert(o);
             }
 /script

 /head

 body
 /body
 /html

 My steps to test are as follows:

 * Loadhttp://localhost:/business/createChannel.do
 * Loadhttp://localhost:/channel.html
 * Loadhttp://localhost:/business/sendMessage.do

 Here is the stack trace that I get when loading the channel.html file:

 WARNING: /_ah/channel/dev
 com.google.appengine.api.channel.dev.LocalChannelFailureException:
 Channel for application key null not found.
         at
 com.google.appengine.api.channel.dev.ChannelManager.getChannel(ChannelManag 
 er.java:
 58)
         at
 com.google.appengine.api.channel.dev.ChannelManager.getClientChannel(Channe 
 lManager.java:
 73)
         at
 com.google.appengine.api.channel.dev.ChannelManager.connectClient(ChannelMa 
 nager.java:
 122)
         at
 com.google.appengine.api.channel.dev.LocalChannelServlet.doGet(LocalChannel 
 Servlet.java:
 64)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         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(ServeBlobFi 
 lter.java:
 58)
         at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1157)
         at
 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans 
 actionCleanupFilter.java:
 43)
         at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1157)
         at
 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile 
 Filter.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(DevAppEn 
 gineWebAppContext.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)
 Nov 29, 2010 12:12:17 PM
 

Re: [appengine-java] Re: datanucleus-appengine

2010-11-29 Thread Ikai Lan (Google)
We haven't abandoned JDO/JPA, but we may emphasize the low-level APIs going
forward. You'll always get low-level features first. The mismatch between
datastore features and relational database features is starting to really
grow.

One thing we'll plan on doing is to work more closely with framework and
library implementors to make sure they have what they need to build toolkits
that better mesh with non-relational datastores. For instance, take a look
at our recent article about Django:

http://code.google.com/appengine/articles/django-nonrel.html

(BTW, if you are a Python developer, please do not use app-engine-patch.
It's deprecated).

The original approach we took and encouraged was to bend existing toolkits
to work with GAE to adhere to standards. We'll still do this when possible,
but we're more pragmatic than dogmatic about standards. In some cases, such
as the datastore, it may make more sense for us to help developers build
toolkits that can keep up with the trend of non-relational persistence.

--
Ikai Lan
Developer Programs Engineer, Google App Engine
Blogger: http://googleappengine.blogspot.com
Reddit: http://www.reddit.com/r/appengine
Twitter: http://twitter.com/app_engine



On Thu, Nov 25, 2010 at 12:38 AM, Eugene D edanil...@gmail.com wrote:

 Great question. It would be very helpful to get a status report on
 this as well as a roadmap for either this library or any planned
 alternatives

 On Nov 23, 3:48 pm, George  Moschovitis george.moschovi...@gmail.com
 wrote:
  Are there any plans to resume work on datanucleus-appengine?
 
  The progress on this lib seems to have stopped 6 months ago and there
  still a lot of related issues in the tracker:
 
  update to the latest version of datanucleus, support for unowned
  relations, support for more jdo/jpa features, jpa docs and more...
 
  is there a roadmap for this important library?
 
  thanks,
  -g.

 --
 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-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-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-j...@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.



[appengine-java] 1.4.0 Preview + javax.xml.rpc.ServiceException

2010-11-29 Thread Shaun Clark
I am getting:


javax.xml.rpc.ServiceException: access denied
(java.lang.RuntimePermission modifyThreadGroup)
at com.google.api.adwords.lib.AdWordsVersion
$AdWordsVersionV201008.setHeaders(AdWordsVersion.java:313)
at
com.google.api.adwords.lib.AdWordsServiceFactory.getConfiguredStub(AdWordsServiceFactory.java:
184)
at
com.google.api.adwords.lib.AdWordsServiceFactory.generateSerivceStub(AdWordsServiceFactory.java:
104)
at
com.google.api.adwords.lib.AdWordsUser.getService(AdWordsUser.java:
334)
at
com.appointment.actions.Google.AdWordsActions.getClicks(AdWordsActions.java:
47)
at
org.apache.jsp.jsp.utils.analyticstest_jsp._jspService(analyticstest_jsp.java:
92)
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.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java:
141)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
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)

This occurs when I run:

CampaignServiceInterface campaignService =
mccUser.getService(AdWordsService.V201008.CAMPAIGN_SERVICE); with the
adwords api. Any ideas? Thanks!

Shaun

-- 
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-j...@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.



[appengine-java] After a bit more searching

2010-11-29 Thread Rich
I found this 
http://someprog.blogspot.com/2010/08/google-app-engine-can-not-find-tag.html
.  This will fix your problem.  Not sure why the goog-appengine-plugin
didn't pull it in but use those directions.  And a thanks to Sergey
Vasilyev for his first blog post and answer to this question!

-- 
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-j...@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.



Re: [appengine-java] calling blobstore from inside the webapp

2010-11-29 Thread A. Stevko
There are numerous posts concerning the differences between the dev and prod
blobstore behaviors.
Perhaps this is your issue:
http://code.google.com/p/googleappengine/issues/detail?id=3273

http://code.google.com/p/googleappengine/issues/detail?id=3273Another
resource to check are the blobstore posts on
http://stackoverflow.com/questions/tagged/blobstore


On Sun, Nov 28, 2010 at 5:08 AM, Zsombor gzsom...@gmail.com wrote:

 Hello,

  I would like to modify the content of the BlobStore from inside my
 webapp. I mean, the user uploads a picture into blobstore, after in
 the background the app should create thumbnails, and stores that
 thumbnails too in the BlobStore.
  I figured out, that from my 'servlet', I can call
 BlobstoreServiceFactory.getBlobstoreService().createUploadUrl(/
 internal/uploadBlob/+id);
 and to the acquired URL I can post the content - with proper multi-
 part encoding. It works in the development mode, however in the live
 system, it always fails with a generic server error message. I'm sure
 that my code doesn't gets called - nothing refers to /internal/
 uploadBlob/ in the request log. From the response headers, it seems
 that the upload server responding :
 {server=[Upload Server Built on Nov 11 2010 15:36:58 (1289518618)],
 date=[Sun, 28 Nov 2010 12:54:40 GMT], pragma=[no-cache], expires=[Fri,
 01 Jan 1990 00:00:00 GMT], cache-control=[no-cache, no-store, must-
 revalidate], content-length=[456], content-type=[text/html], x-google-
 cache-control=[remote-fetch], via=[HTTP/1.1 GWA]}

 Is there anybody, how noticed similar behaviour? Or better, know how
 to do it correctly ?

 BR,
  Zsombor

 --
 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-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-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-j...@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.



[appengine-java] Re: Blobstore and JUnit?

2010-11-29 Thread Brad
Simply mock out the blobstore service using something like mockito:
http://mockito.org/

On Nov 28, 9:13 am, Gal Dolber gal.dol...@gmail.com wrote:
 Hi,

 I am having problems testing the blobstore.

 I did the initialization:

             LocalBlobstoreServiceTestConfig blob =
 newLocalBlobstoreServiceTestConfig();

     blob.setBackingStoreLocation(./blobs);

     helper = new
 LocalServiceTestHelper(newLocalDatastoreServiceTestConfig(), blob);

 But I need some way to put a few files into the blobstore to run the tests.

 Any hint?

 --
 Guit: Elegant, beautiful, modular and *production ready* gwt applications.

 http://code.google.com/p/guit/

-- 
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-j...@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.



[appengine-java] Re: 1.4.0 Preview and Channel API

2010-11-29 Thread James M
Thanks for the tip.  I added the call to the controller to create the
ChannelService.  However, what's odd is that my implementation is like
your first attempt.  I had to use the channelId returned from
ChannelService in the JavaScript when opening the socket.

The other odd thing I'm seeing is that this is polling.  Do you happen
to have the javadocs for the ChannelAPI?  So far I haven't turned up
anything specific to Java.

Thanks again,
James



On Nov 29, 12:01 pm, Scott shathaw...@gmail.com wrote:
 Is the HTML snippet the full client code? If so you need to call the
 createChannel service from the client prior to opening the socket.
 Also what does the ?key=dev do for you in your script import?

 Good luck!

 Scott

 On Nov 29, 7:20 am, James M jmort...@gmail.com wrote:







  Hi Scott,

  I'm trying to follow your example but am getting stuck.  I've created
  the following controllers:

  /** create the channel **/
   public ModelAndView createChannel(HttpServletRequest request,
  HttpServletResponse response) {
            ChannelService channelService =
  ChannelServiceFactory.getChannelService();
        channelService.createChannel(coupoz);

        return constructModelAndView(example);

    }

  /** send a message **/
    public ModelAndView sendMessage(HttpServletRequest request,
  HttpServletResponse response) {
        ChannelService channelService =
            ChannelServiceFactory.getChannelService();
                        channelService.sendMessage(new
            ChannelMessage(coupoz,test));

            return constructModelAndView(example);
    }

  // NOTE:  both controllers return a JSON string.

  I also have an HTML file:

  html
  head
  script src=_ah/channel/jsapi?key=dev/script
  script
           var channel = new goog.appengine.Channel(coupoz);
           var   socket = channel.open();
              socket.onopen = function() {
                  console.info(socket opened...);
              }
              socket.onmessage = function(evt) {
                   var o = JSON.parse(evt.data);
                   alert(o);
              }
  /script

  /head

  body
  /body
  /html

  My steps to test are as follows:

  * Loadhttp://localhost:/business/createChannel.do
  * Loadhttp://localhost:/channel.html
  * Loadhttp://localhost:/business/sendMessage.do

  Here is the stack trace that I get when loading the channel.html file:

  WARNING: /_ah/channel/dev
  com.google.appengine.api.channel.dev.LocalChannelFailureException:
  Channel for application key null not found.
          at
  com.google.appengine.api.channel.dev.ChannelManager.getChannel(ChannelManag 
  er.java:
  58)
          at
  com.google.appengine.api.channel.dev.ChannelManager.getClientChannel(Channe 
  lManager.java:
  73)
          at
  com.google.appengine.api.channel.dev.ChannelManager.connectClient(ChannelMa 
  nager.java:
  122)
          at
  com.google.appengine.api.channel.dev.LocalChannelServlet.doGet(LocalChannel 
  Servlet.java:
  64)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
          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(ServeBlobFi 
  lter.java:
  58)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1157)
          at
  com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans 
  actionCleanupFilter.java:
  43)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1157)
          at
  com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile 
  Filter.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(DevAppEn 
  gineWebAppContext.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 
  

[appengine-java] Re: Channel API ?

2010-11-29 Thread James M
Hi Robert,

Check out this thread here.  We were able to get it working, but only
with polling.  We've yet to figure out the comet part of things:

http://groups.google.com/group/google-appengine-java/browse_thread/thread/19f250b1ff0e4342

James

On Nov 24, 7:41 am, Roberto Saccon rsac...@gmail.com wrote:
 Anybody figured out how to to use it ? Are there javadocs or any other
 new docs anywhere, beside of the probably now outdated  dance robot  ?

 --
 Roberto

-- 
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-j...@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.



[appengine-java] Re: calling blobstore from inside the webapp

2010-11-29 Thread Mike
Zsombor,

Follow the implementation outlined in this excellent blog post. It
explains how to upload to blobstore from within your app.

Good luck,

Michael Weinberg


http://jeremyblythe.blogspot.com/2010/10/manipulating-images-in-blobstore.html


On Nov 28, 8:08 am, Zsombor gzsom...@gmail.com wrote:
 Hello,

  I would like to modify the content of the BlobStore from inside my
 webapp. I mean, the user uploads a picture into blobstore, after in
 the background the app should create thumbnails, and stores that
 thumbnails too in the BlobStore.
  I figured out, that from my 'servlet', I can call
 BlobstoreServiceFactory.getBlobstoreService().createUploadUrl(/
 internal/uploadBlob/+id);
 and to the acquired URL I can post the content - with proper multi-
 part encoding. It works in the development mode, however in the live
 system, it always fails with a generic server error message. I'm sure
 that my code doesn't gets called - nothing refers to /internal/
 uploadBlob/ in the request log. From the response headers, it seems
 that the upload server responding :
 {server=[Upload Server Built on Nov 11 2010 15:36:58 (1289518618)],
 date=[Sun, 28 Nov 2010 12:54:40 GMT], pragma=[no-cache], expires=[Fri,
 01 Jan 1990 00:00:00 GMT], cache-control=[no-cache, no-store, must-
 revalidate], content-length=[456], content-type=[text/html], x-google-
 cache-control=[remote-fetch], via=[HTTP/1.1 GWA]}

 Is there anybody, how noticed similar behaviour? Or better, know how
 to do it correctly ?

 BR,
  Zsombor

-- 
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-j...@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.



Re: [appengine-java] calling blobstore from inside the webapp

2010-11-29 Thread Jeremy Blythe
I have also written a blog post here 
http://jeremyblythe.blogspot.com/2010/10/manipulating-images-in-blobstore.html 
with code samples. 

On 30 Nov 2010, at 01:06, A. Stevko andy.ste...@gmail.com wrote:

 There are numerous posts concerning the differences between the dev and prod 
 blobstore behaviors.
 Perhaps this is your issue:
 http://code.google.com/p/googleappengine/issues/detail?id=3273
 
 Another resource to check are the blobstore posts on
 http://stackoverflow.com/questions/tagged/blobstore
 
 
 On Sun, Nov 28, 2010 at 5:08 AM, Zsombor gzsom...@gmail.com wrote:
 Hello,
 
  I would like to modify the content of the BlobStore from inside my
 webapp. I mean, the user uploads a picture into blobstore, after in
 the background the app should create thumbnails, and stores that
 thumbnails too in the BlobStore.
  I figured out, that from my 'servlet', I can call
 BlobstoreServiceFactory.getBlobstoreService().createUploadUrl(/
 internal/uploadBlob/+id);
 and to the acquired URL I can post the content - with proper multi-
 part encoding. It works in the development mode, however in the live
 system, it always fails with a generic server error message. I'm sure
 that my code doesn't gets called - nothing refers to /internal/
 uploadBlob/ in the request log. From the response headers, it seems
 that the upload server responding :
 {server=[Upload Server Built on Nov 11 2010 15:36:58 (1289518618)],
 date=[Sun, 28 Nov 2010 12:54:40 GMT], pragma=[no-cache], expires=[Fri,
 01 Jan 1990 00:00:00 GMT], cache-control=[no-cache, no-store, must-
 revalidate], content-length=[456], content-type=[text/html], x-google-
 cache-control=[remote-fetch], via=[HTTP/1.1 GWA]}
 
 Is there anybody, how noticed similar behaviour? Or better, know how
 to do it correctly ?
 
 BR,
  Zsombor
 
 --
 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-j...@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.
 
 
 -- 
 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-j...@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.

-- 
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-j...@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.



Re: [appengine-java] Re: calling blobstore from inside the webapp

2010-11-29 Thread Jeremy Blythe
Whoops, posted at the same time!! Glad you found my blog post useful. 

Jeremy. 

On 30 Nov 2010, at 06:00, Mike weinbe...@gmail.com wrote:

 Zsombor,
 
 Follow the implementation outlined in this excellent blog post. It
 explains how to upload to blobstore from within your app.
 
 Good luck,
 
 Michael Weinberg
 
 
 http://jeremyblythe.blogspot.com/2010/10/manipulating-images-in-blobstore.html
 
 
 On Nov 28, 8:08 am, Zsombor gzsom...@gmail.com wrote:
 Hello,
 
  I would like to modify the content of the BlobStore from inside my
 webapp. I mean, the user uploads a picture into blobstore, after in
 the background the app should create thumbnails, and stores that
 thumbnails too in the BlobStore.
  I figured out, that from my 'servlet', I can call
 BlobstoreServiceFactory.getBlobstoreService().createUploadUrl(/
 internal/uploadBlob/+id);
 and to the acquired URL I can post the content - with proper multi-
 part encoding. It works in the development mode, however in the live
 system, it always fails with a generic server error message. I'm sure
 that my code doesn't gets called - nothing refers to /internal/
 uploadBlob/ in the request log. From the response headers, it seems
 that the upload server responding :
 {server=[Upload Server Built on Nov 11 2010 15:36:58 (1289518618)],
 date=[Sun, 28 Nov 2010 12:54:40 GMT], pragma=[no-cache], expires=[Fri,
 01 Jan 1990 00:00:00 GMT], cache-control=[no-cache, no-store, must-
 revalidate], content-length=[456], content-type=[text/html], x-google-
 cache-control=[remote-fetch], via=[HTTP/1.1 GWA]}
 
 Is there anybody, how noticed similar behaviour? Or better, know how
 to do it correctly ?
 
 BR,
  Zsombor
 
 -- 
 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-j...@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.
 

-- 
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-j...@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.