Does anybody know the process of how to get the rest manager to start on an external tomcat. we are not using the tomcat version that comes with progress.
thanks.
Does anybody know the process of how to get the rest manager to start on an external tomcat. we are not using the tomcat version that comes with progress.
thanks.
Flag this post as spam/abuse.
Does anybody know the process of how to get the rest manager to start on an external tomcat. we are not using the tomcat version that comes with progress.
thanks.
Flag this post as spam/abuse.
More detailed information can be found in chapter 9 of the OpenEdge Management and OpenEdge Explorer: Configuration manual. The OpenEdge 11.3 documentation can be found here.
Hi smunigal,
We have tried that already and it still wont start.
Does anybody know the process of how to get the rest manager to start on an external tomcat. we are not using the tomcat version that comes with progress.
thanks.
Flag this post as spam/abuse.
Flag this post as spam/abuse.
This email is confidential and intended solely for the use of the individual to whom it is addressed. Any views or opinions presented are solely those of the author and do not necessarily represent those of Broadcasting Dataservices. If you are not the intended recipient, be advised that you have received this email in error and that any use, dissemination, forwarding, printing, or copying of this email is strictly prohibited. If you have received this email in error please notify the sender.[/collapse][/collapse]
Hi smunigal,
We have tried that already and it still wont start.
Flag this post as spam/abuse.
Hi smunigal,
We have tried that already and it still wont start.
Flag this post as spam/abuse.
I dont see any errors, does that mean it should be working? How do we check that the rest manager is working correctly?
I dont see any errors, does that mean it should be working? How do we check that the rest manager is working correctly?
Flag this post as spam/abuse.
It says that its running but we still can't connect. Any other ideas?
It says that its running but we still can't connect. Any other ideas?
Flag this post as spam/abuse.
The application wont connect with OE explorer because the explorer is not functioning correctly. Would we still need to do a restman deploy for it to work correctly?
The application wont connect with OE explorer because the explorer is not functioning correctly. Would we still need to do a restman deploy for it to work correctly?
Flag this post as spam/abuse.
We have done the above and it says that there are no deployed services. how would we deploy a service manually using restman?
Hi meyrick,
Please use following command to deploy a WAR file using restman utility.
restman -i restmgr1 -war <war file location> -deploy
Ex: proenv>restman -i restmgr1 -war C:\qa\OE_Exports\OEProj.war -deploy
Once the deploy process is successful please check for the availability of the application in webapps directory under $DLC location ($DLC\\servers\tomcat\webapps)
Thanks and Regards,
Anil Kumar.
Hi anikumar,
The deployment went through fine, we enabled the rest manager but once again it still does not work.
The app still keeps loading when i try run it.
Hi anikumar,
The deployment went through fine, we enabled the rest manager but once again it still does not work.
Flag this post as spam/abuse.
Hi Smunigal,
There is no errors in the log file. It seems to be up and running, but we dont know exactly how to confirm if its running correctly.
Hi Smunigal,
There is no errors in the log file. It seems to be up and running, but we dont know exactly how to confirm if its running correctly.
Flag this post as spam/abuse.
Hi meyrick,
Can you please elaborate on following
>> The deployment went through fine, we enabled the rest manager but once again it still does not work. The app still keeps loading when i try run it.
If I understand this correctly the app got deployed properly to Tomcat location (webapps) and the application cannot be accessed properly?
Are you trying to access the application from:
- General browser?
- Any REST Client (say Postman, RESTClient)?
You can check the status of the deployed applications from the restman. Use following command to verify the same:
proenv>restman -i restmgr1 -appname <Application Name> -list
Know the application status from browser:
http://localhost:8980/<Service or App Name>/
Ex: http://localhost:8980/ExprTestService/
The response will be 'REST Adapter' in the browser body.
For any of the problems with respect to deployed application the logs are located in specific application under webapps directory and the rest manager (server) logs are located in oerm.log
Application logs: $DLC/server/tomcat/webapps/<App Name>/WEB-INF/adapters/logs
oerm.log : $DLC\servers\tomcat\webapps\oerm\WEB-INF\oerm.data\oerm.log
Hope this helps.
Thanks and Regards,
Anil Kumar.
We have the Rest Service up and running and can access it through the browser, but the mobile app itself wont connect.
Hi meyrick,
>>but the mobile app itself wont connect
Can you please check for the availability of the REST URI in the Mobile App Builder in 'MobileService_Settings' page under 'Services' section. It should point to the IP address such that it can be accessed from external machines.
Attached snapshot specifying.
Thanks and Regards,
Anil Kumar.
Hi anikumar,
we are using the correct IP and we can connect to it from the test tablet browser but not from within the app. ie we can see the rest service is there from the internet but the app will not connect to it.
Hi meyrick,
How did you create the mobile app? Did you create it from Progress Developer Studio or the Mobile App Builder? If so, is it an "Express" app, a "Session-Enabled" app, or a default Phone or Tablet project?
--Wayne Henshaw
Hi Wayne,
I created the app from the developer studio and then you click on the project in the developer studio and it takes you to the builder. I'm not sure how to check, but I'm pretty sure its the default tablet project.
How does the mobile app connect to the service? Do you use the Session Services? And what do you have for Session services? If you created the app before this past Tuesday (March 11), you would have a group that consists of:
MobileService_Login
MobileService_Logout
MobileService_Settings
If you created it after Tuesday morning, you would have a group with these:
SessionService_Login
SessionService_Logout
SessionService_Session
SessionService_Settings
There was a change in the new release of the Mobile App Builder that requires you to make sure you invoke the SessionService_Session before you invoke the Login. Could that be the problem? (If not, it would be good to see if we can get some info on what the error is when you try to connect. I can help you with that.)
I have the mobileService. The app is loading through passed the code, which it wasn't doing before but there's no data being returned to a simple list item for a look up. This is the code i am using on the first page:
if ($t.ProgressSession == undefined || $t.ProgressSession.loginResult != progress.data.Session.LOGIN_SUCCESS) {
var settings = MyTestService_beCustomer_Settings;
var pdsession = $t.ProgressSession;
if (pdsession == undefined)
pdsession = $t.ProgressSession = new progress.data.Session();
if (settings.serviceURI == undefined || settings.serviceURI == '')
console.log("serviceURI was not specified." +
" catalogURI: " + settings.catalogURI +
" resourceName: " + settings.resourceName);
var loginResult = pdsession.login (settings.serviceURI, "", "");
if (loginResult != progress.data.Session.LOGIN_SUCCESS) {
var msg = 'ERROR: Login failed with code: ' + loginResult;
console.log(msg);
alert(msg);
return;
}
pdsession.addCatalog(settings.catalogURI);
}
So the pdsession.login() and the pdsession.addCatalog() execute successfully, but when a JSDO tries to get data, there is no data returned? Does the server return an error on the request for data, or does it return "200 OK" but has no data?
This is from the localhost access log, does this look correct? We didnt get an error.
196.11.122.163 - - [13/Mar/2014:15:53:24 +0200] "OPTIONS /MyTest/static/home.html HTTP/1.1" 200 -
196.11.122.163 - - [13/Mar/2014:15:53:24 +0200] "GET /MyTest/static/home.html HTTP/1.1" 200 35
196.11.122.163 - - [13/Mar/2014:15:53:24 +0200] "OPTIONS /MyTest/static/mobile/MyTestService.json HTTP/1.1" 200 -
196.11.122.163 - - [13/Mar/2014:15:53:24 +0200] "GET /MyTest/static/mobile/MyTestService.json HTTP/1.1" 200 2990
That looks fine, those entries indicate that the login and addCatalog worked. Are there entries for when the app requests the data?
where would we find that?
I think it would be in the same log (it is in the apps I'm familiar with). If you are simply retrieving data, it might look something like:
... GET /MyTest/rest/<specifics of the resource you're requesting>
How do you make the request for the data?
We have an invoke service that calls the json. We are going according to the progress exchange 2013 OpenEdge Mobile Document. Those four lines i sent to you earlier in the previous message are the only lines we got.
Does this other thread sound like the same problem you are seeing? :
yes it does but there is no solution for it? Our app was never connecting before because we had OE explorer issues.
Not yet. That other conversation was happening just this morning while you and I were posting back and forth. It looks like it has been submitted as a high priority issue.
alright thanks, ill check back tomorrow. hopefully there will be a solution. thanks for your help.
If you don't mind sharing your app with me, I can take a look at it.
ok no problem. What is your email address??
whenshaw@progress.com
I won't be able to look at it right away, but probably later today.
no problem. I will only be back online tomorrow. thanks again.
Unfortunately, it doesn't look like your problem is the same as that other one. I did see one thing, though -- in the mapping for the CustomerRead, on the data tab of the SelectionPage, the "filter" field for the request has just the number "50" in it. Is your ABL code on the server written so that it needs only a number, or should the filter be something like "CustNum EQ 50" ? If that's not the problem, I would try checking the traffic between your app and the server, using the Network tab of a browser debugger or a standalone HTTP monitor, to see whether the request for the data is being sent and exactly what is coming back.
Below is the preview and then the response:
lastModified: "Fri Feb 28 14:40:39 CAT 2014"
services: [{name:ElcbCrmService, address:/rest/ElcbCrmService, useRequest:true,…}]
0: {name:ElcbCrmService, address:/rest/ElcbCrmService, useRequest:true,…}
address: "/rest/ElcbCrmService"
name: "ElcbCrmService"
resources: [{name:beCustomer, path:/beCustomer, schema:{type:object, additionalProperties:false,…},…}]
0: {name:beCustomer, path:/beCustomer, schema:{type:object, additionalProperties:false,…},…}
name: "beCustomer"
operations: [{path:, type:update, verb:put, params:[{name:dsCustomer, type:REQUEST_BODY}]},…]
0: {path:, type:update, verb:put, params:[{name:dsCustomer, type:REQUEST_BODY}]}
params: [{name:dsCustomer, type:REQUEST_BODY}]
path: ""
type: "update"
verb: "put"
1: {path:, type:delete, verb:delete, params:[{name:dsCustomer, type:REQUEST_BODY}]}
params: [{name:dsCustomer, type:REQUEST_BODY}]
path: ""
type: "delete"
verb: "delete"
2: {path:?filter={filter}, type:read, verb:get, params:[]}
params: []
path: "?filter={filter}"
type: "read"
verb: "get"
3: {path:, type:create, verb:post, params:[{name:dsCustomer, type:REQUEST_BODY}]}
params: [{name:dsCustomer, type:REQUEST_BODY}]
path: ""
type: "create"
verb: "post"
path: "/beCustomer"
schema: {type:object, additionalProperties:false,…}
additionalProperties: false
properties: {dsCustomer:{type:object, additionalProperties:false,…}}
dsCustomer: {type:object, additionalProperties:false,…}
additionalProperties: false
properties: {custSel:{type:array, items:{additionalProperties:false,…}}}
custSel: {type:array, items:{additionalProperties:false,…}}
items: {additionalProperties:false,…}
additionalProperties: false
properties: {_id:{type:string}, dm-accno:{type:string, ablType:CHARACTER, default:, title:Account Number},…}
_id: {type:string}
dm-accno: {type:string, ablType:CHARACTER, default:, title:Account Number}
ablType: "CHARACTER"
default: ""
title: "Account Number"
type: "string"
dm-name: {type:string, ablType:CHARACTER, default:, title:Debtor Name}
ablType: "CHARACTER"
default: ""
title: "Debtor Name"
type: "string"
rc-number: {type:string, ablType:CHARACTER, default:, title:Rental Contract Number}
ablType: "CHARACTER"
default: ""
title: "Rental Contract Number"
type: "string"
type: "array"
type: "object"
type: "object"
useRequest: true
version: "1.0"
{
"version": "1.0",
"lastModified": "Fri Feb 28 14:40:39 CAT 2014",
"services": [{
"name": "ElcbCrmService",
"address": "\/rest\/ElcbCrmService",
"useRequest": true,
"resources": [{
"name": "beCustomer",
"path": "\/beCustomer",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {"dsCustomer": {
"type": "object",
"additionalProperties": false,
"properties": {"custSel": {
"type": "array",
"items": {
"additionalProperties": false,
"properties": {
"_id": {"type": "string"},
"dm-accno": {
"type": "string",
"ablType": "CHARACTER",
"default": "",
"title": "Account Number"
},
"rc-number": {
"type": "string",
"ablType": "CHARACTER",
"default": "",
"title": "Rental Contract Number"
},
"dm-name": {
"type": "string",
"ablType": "CHARACTER",
"default": "",
"title": "Debtor Name"
}
}
}
}}
}}
},
"operations": [
{
"path": "",
"type": "update",
"verb": "put",
"params": [{
"name": "dsCustomer",
"type": "REQUEST_BODY"
}]
},
{
"path": "",
"type": "delete",
"verb": "delete",
"params": [{
"name": "dsCustomer",
"type": "REQUEST_BODY"
}]
},
{
"path": "?filter={filter}",
"type": "read",
"verb": "get",
"params": []
},
{
"path": "",
"type": "create",
"verb": "post",
"params": [{
"name": "dsCustomer",
"type": "REQUEST_BODY"
}]
}
]
}]
}]
}
Should the response contain the data?
This seems to be the response to addCatalog. If that's the last request/response you see, it looks like the request for the data is not being made. I would try 2 things at this point, to determine whether the app even gets to the point of requesting data :
1. Your app is designed to invoke Customer Read in response to Value Change of srcCustomer. Add an error handler for customerRead on the data tab for that screen -- just have it put up an alert box saying there was an error (there is other info you could add later if it turns out that there is an error).
2. also add a "run JavaScript" handler for Value Change of srcCustomer, and have it execute before the customerRead, just to confirm that that event is being generated.
this is the error we got when calling the JSDORead:
ERROR condition: beCustomer Singleton object instantiation ended with an ERROR condition. (16819) (7211)
Hi meyrick,
One possible reason could be database association for the OpenEdge Appserver (restbroker1). Can you please check for the availability of database connection for restbroker1 at the server side.
If it is not associated please assign the database connection, recompile business logic and publish to Appserver
Thanks and Regards,
Anil Kumar.
Thanks to everyone for their help. we have got the app working with the data getting passed to it but is there an easier way to redeploy every time I change code other than tomcat in the box.
Hi meyrick,
You can add the external (or new) tomcat server to OEM (OpenEdge Management) and then to 'Servers view' in PDS OE (Progress Developer Studio for OpenEdge) such that it will have features of Tomcat In the box with respect to PDS OE like auto publish changes to tomcat and Run on Server operations.
Hope this helps.
Thanks and Regards,
Anil Kumar.
thank you, we have added it but when trying to start it through PDSOE it throws an error of:
Cannot start the OE Web Server since it is not configured as Tomcat in the box.
any idea on how to solve this and get it started?
If you are using your own Tomcat, you have to start/stop it yourself using the startup/shutdown scripts provided with the Tomcat install. PDS normally starts/stops the tomcat-in-the-box via OEM, but it can't do this if you're using your own install. There is no way to add your own Tomcat install into OEM. It only works with the one shipped with OpenEdge install.
You could add Tomcat starting/stopping to OEM via a job but I'm guessing this isn't exactly what your after.
[mention:89fc5d694d9c44e28801ce6a5d07a449:e9ed411860ed4f2ba0265705b8793d05] Any thoughts of allowing OEM to plugin to an external Tomcat for that stuff or is the OEM stuff to specific at this point? Not sure there is any great benefit. Personally I was very close to using an external Tomcat just to get the option to start and stop it as a service on windows anyway.
JMTC
The tomcat in the box support was added strictly for PDS, and uses protc and not the startup/shutdown scripts provided by a standard tomcat install. You could point protc to some other install of Tomcat, and then allow it to be controlled by OEM that way.