You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by "Michael Martell (JIRA)" <ji...@apache.org> on 2017/05/11 16:34:04 UTC

[jira] [Updated] (GEODE-2910) Declaring Object Types in Geode Without Using Client Unclear

     [ https://issues.apache.org/jira/browse/GEODE-2910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Martell updated GEODE-2910:
-----------------------------------
    Description: 
We had trouble passing objects to functions via the REST API because we had no objects registered. The only documentation we found for passing objects was [here|http://geode.apache.org/docs/guide/11/rest_apps/develop_rest_apps.html#topic_rbc_h25_m4] where it says:

"... the Item domain object must be in the CLASSPATH of all members receiving the function."

As a C# programmer, this is very confusing. Helpful to spell out that your C# class needs to have a Java equivalent loaded in the server. Also that the object type name includes the Java package name.

Adding the following simple example to the documentation would have been a great demonstration of how objects are registered.

This Java class is required to register the above Item object on the server:
{code}
package cheezypizza;

public class Item {
    public int itemNo;
    public String description;
    public int quantity;
    public float unitprice;
    public double totalprice;
}
{code}

A script to register the objects:
{code}
# Build the jar
javac -classpath /mnt/c/gemfire/lib/\* -d ./out src/cheezypizza/*.java
cd out
jar cvMf functions.jar cheezypizza/*.class

# Copy jar to server
scp functions.jar $HOSTNAME:/home/user

# In gfsh, starting the server, specify --classpath=
start server --name=rest-server --start-rest-api=true --http-service-port=8080 --classpath=/home/user/functions.jar
{code}

  was:
We had trouble passing objects to functions via the REST API because we had no objects registered. The only documentation we found for passing objects was here: http://geode.apache.org/docs/guide/11/rest_apps/develop_rest_apps.html#topic_rbc_h25_m4

where it says:

"... the Item domain object must be in the CLASSPATH of all members receiving the function."

As a C# programmer, this is very confusing. Helpful to spell out that your C# class needs to have a Java equivalent loaded in the server.


> Declaring Object Types in Geode Without Using Client Unclear
> ------------------------------------------------------------
>
>                 Key: GEODE-2910
>                 URL: https://issues.apache.org/jira/browse/GEODE-2910
>             Project: Geode
>          Issue Type: Improvement
>          Components: docs
>            Reporter: Michael Martell
>
> We had trouble passing objects to functions via the REST API because we had no objects registered. The only documentation we found for passing objects was [here|http://geode.apache.org/docs/guide/11/rest_apps/develop_rest_apps.html#topic_rbc_h25_m4] where it says:
> "... the Item domain object must be in the CLASSPATH of all members receiving the function."
> As a C# programmer, this is very confusing. Helpful to spell out that your C# class needs to have a Java equivalent loaded in the server. Also that the object type name includes the Java package name.
> Adding the following simple example to the documentation would have been a great demonstration of how objects are registered.
> This Java class is required to register the above Item object on the server:
> {code}
> package cheezypizza;
> public class Item {
>     public int itemNo;
>     public String description;
>     public int quantity;
>     public float unitprice;
>     public double totalprice;
> }
> {code}
> A script to register the objects:
> {code}
> # Build the jar
> javac -classpath /mnt/c/gemfire/lib/\* -d ./out src/cheezypizza/*.java
> cd out
> jar cvMf functions.jar cheezypizza/*.class
> # Copy jar to server
> scp functions.jar $HOSTNAME:/home/user
> # In gfsh, starting the server, specify --classpath=
> start server --name=rest-server --start-rest-api=true --http-service-port=8080 --classpath=/home/user/functions.jar
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)