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)