dojot / device-manager

Device management service for dojot
http://www.dojot.com.br
Apache License 2.0
0 stars 1 forks source link

Template and device creation problem #34

Open flaviops opened 6 years ago

flaviops commented 6 years ago

While experimenting with the platform I encountered some problems with the creation of devices and with creation and listing of templates. I still don't know if I'm doing something wrong while configuring the Dojot plataform or something alike.

I used the following command to create the device:

curl -X POST http://localhost:8000/device -H "Authorization: Bearer ${JWT}" -H 'Content-Type:application/json' -d '{
    "label": "SensorModel",
    "attrs": [
        {
            "label": "temperature",
            "type": "dynamic",
            "value_type": "float"
        }
    ] }'

This is the reply from the Device-Manager:

{"msg": "Internal Error"}

By looking with the docker-composer I got the following error:

auth_1            | 2018-02-05 15:31:20,937 - INFO - user 1 permit to POST on /device/
auth_1            | 172.19.0.17 - - [05/Feb/2018:15:31:20 +0000] "POST /pdp HTTP/1.1" 200 38 "-" "LuaSocket 3.0-rc1"
device-manager_1  | [2018-02-05 15:31:20,943] ERROR in app: Exception on /device [POST]
device-manager_1  | Traceback (most recent call last):
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1982, in wsgi_app
device-manager_1  |     response = self.full_dispatch_request()
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1614, in full_dispatch_request
device-manager_1  |     rv = self.handle_user_exception(e)
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1517, in handle_user_exception
device-manager_1  |     reraise(exc_type, exc_value, tb)
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1612, in full_dispatch_request
device-manager_1  |     rv = self.dispatch_request()
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1598, in dispatch_request
device-manager_1  |     return self.view_functions[rule.endpoint](**req.view_args)
device-manager_1  |   File "/usr/src/app/DeviceManager/DeviceManager.py", line 128, in create_device
device-manager_1  |     device_data, json_payload = parse_payload(request, device_schema)
device-manager_1  |   File "/usr/src/app/DeviceManager/SerializationModels.py", line 72, in parse_payload
device-manager_1  |     data, errors = schema.load(json_payload)
device-manager_1  | ValueError: need more than 1 value to unpack
device-manager_1  | 172.19.0.17 - - [05/Feb/2018:15:31:20 +0000] "POST /device HTTP/1.1" 500 25 "-" "curl/7.35.0"

Creating or listing templates also gives an error, giving the same error message to a POST, but with the following output on docker-composer:

GET:

 curl -X GET http://localhost:8000/template -H "Authorization: Bearer ${JWT}"

Reply:

{"msg": "Internal Error"}

Docker-Composer output:

auth_1            | 2018-02-05 15:33:45,495 - INFO - user 1 permit to GET on /template/
auth_1            | 172.19.0.17 - - [05/Feb/2018:15:33:45 +0000] "POST /pdp HTTP/1.1" 200 38 "-" "LuaSocket 3.0-rc1"
device-manager_1  | [2018-02-05 15:33:45,515] ERROR in app: Exception on /template [GET]
device-manager_1  | Traceback (most recent call last):
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1982, in wsgi_app
device-manager_1  |     response = self.full_dispatch_request()
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1614, in full_dispatch_request
device-manager_1  |     rv = self.handle_user_exception(e)
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1517, in handle_user_exception
device-manager_1  |     reraise(exc_type, exc_value, tb)
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1612, in full_dispatch_request
device-manager_1  |     rv = self.dispatch_request()
device-manager_1  |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1598, in dispatch_request
device-manager_1  |     return self.view_functions[rule.endpoint](**req.view_args)
device-manager_1  |   File "/usr/src/app/DeviceManager/TemplateManager.py", line 36, in get_templates
device-manager_1  |     templates = template_list_schema.dump(page.items).data
device-manager_1  | AttributeError: 'list' object has no attribute 'data'
device-manager_1  | 172.19.0.17 - - [05/Feb/2018:15:33:45 +0000] "GET /template HTTP/1.1" 500 25 "-" "curl/7.35.0"
mmagr commented 6 years ago

Hello @flaviops

Thank you for trying out dojot!

Those in particular seem to be related to a recent problem we had with one of our dependencies being updated (marshmallow), thus breaking our usage of their API. Those issues should have been fixed by #35.

Apart from that, I see we might have a version mismatch problem as well. The payload you attached for the device creation request follows this service's old API (0.1.0). If you are to use the current version (that is, the one currently tracked master branch of this repo, which will become 0.2.0 sometime in march), you'll notice that the schema has changed quite a bit.

For this new API, I'd ask you to have a look at our new documentation.

flaviops commented 6 years ago

Thanks for the reply @mmagr.

The creation of templates is now working fine but I'm having another problem with device creation now, the error follows:

auth_1               | 2018-02-07 17:03:37,150 - INFO - user 1 permit to POST on /device/
auth_1               | 172.19.0.23 - - [07/Feb/2018:17:03:37 +0000] "POST /pdp HTTP/1.1" 200 38 "-" "LuaSocket 3.0-rc1"
device-manager_1     | [2018-02-07 17:03:37,164] ERROR in app: Exception on /device [POST]
device-manager_1     | Traceback (most recent call last):
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1982, in wsgi_app
device-manager_1     |     response = self.full_dispatch_request()
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1614, in full_dispatch_request
device-manager_1     |     rv = self.handle_user_exception(e)
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1517, in handle_user_exception
device-manager_1     |     reraise(exc_type, exc_value, tb)
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1612, in full_dispatch_request
device-manager_1     |     rv = self.dispatch_request()
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/Flask-0.12-py2.7.egg/flask/app.py", line 1598, in dispatch_request
device-manager_1     |     return self.view_functions[rule.endpoint](**req.view_args)
device-manager_1     |   File "/usr/src/app/DeviceManager/DeviceManager.py", line 146, in create_device
device-manager_1     |     kafka_handler.create(full_device, meta={"service": tenant})
device-manager_1     |   File "/usr/src/app/DeviceManager/BackendHandler.py", line 132, in create
device-manager_1     |     send_notification(DeviceEvent.CREATE, device, meta)
device-manager_1     |   File "/usr/src/app/DeviceManager/KafkaNotifier.py", line 69, in send_notification
device-manager_1     |     topic = get_topic(meta['service'], CONFIG.subject)
device-manager_1     |   File "/usr/src/app/DeviceManager/KafkaNotifier.py", line 56, in get_topic
device-manager_1     |     response = requests.get(target, headers={"authorization": jwt})
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/requests-2.18.0-py2.7.egg/requests/api.py", line 72, in get
device-manager_1     |     return request('get', url, params=params, **kwargs)
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/requests-2.18.0-py2.7.egg/requests/api.py", line 58, in request
device-manager_1     |     return session.request(method=method, url=url, **kwargs)
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/requests-2.18.0-py2.7.egg/requests/sessions.py", line 502, in request
device-manager_1     |     resp = self.send(prep, **send_kwargs)
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/requests-2.18.0-py2.7.egg/requests/sessions.py", line 612, in send
device-manager_1     |     r = adapter.send(request, **kwargs)
device-manager_1     |   File "/usr/local/lib/python2.7/site-packages/requests-2.18.0-py2.7.egg/requests/adapters.py", line 504, in send
device-manager_1     |     raise ConnectionError(e, request=request)
device-manager_1     | ConnectionError: HTTPConnectionPool(host='data-broker', port=80): Max retries exceeded with url: /topic/dojot.device-manager.device (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7efe1d1d3050>: Failed to establish a new connection: [Errno -2] Name or service not known',))
device-manager_1     | 172.19.0.23 - - [07/Feb/2018:17:03:37 +0000] "POST /device HTTP/1.1" 500 25 "http://localhost:8000/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36"

Now I'm trying to create the device via http://localhost:8000/#/device/new, so the API used should be just fine.

Thanks.

mmagr commented 6 years ago

🤔 it seems one of dojot's services is not running (or at least) ready as it should when you issued the call to create the device.

Could you please copy (or attach) the logs for data-broker?

To get them:

docker-compose logs -t --no-color data-broker > data-broker.log
flaviops commented 6 years ago

This is what I got in the log:

Attaching to dockercompose_data-broker_1
data-broker_1        | 2018-02-07T15:52:19.276408128Z 
data-broker_1        | 2018-02-07T15:52:19.276454945Z > data-broker@0.0.0 subscription /opt/subscription-manager
data-broker_1        | 2018-02-07T15:52:19.276461432Z > node build/src/subscription-manager.js
data-broker_1        | 2018-02-07T15:52:19.276464644Z 
data-broker_1        | 2018-02-07T15:52:19.918266067Z Initializing subscription engine...
data-broker_1        | 2018-02-07T15:52:19.919025302Z --- init producer
data-broker_1        | 2018-02-07T15:52:19.933400348Z Subscription manager listening on port 80
data-broker_1        | 2018-02-07T15:52:19.989552933Z 
data-broker_1        | 2018-02-07T15:52:19.989632862Z events.js:183
data-broker_1        | 2018-02-07T15:52:19.989737223Z       throw er; // Unhandled 'error' event
data-broker_1        | 2018-02-07T15:52:19.989753954Z       ^
data-broker_1        | 2018-02-07T15:52:19.990480609Z NO_NODE: Exception: NO_NODE[-101]
data-broker_1        | 2018-02-07T15:52:19.990494625Z     at ConnectionManager.onSocketData (/opt/subscription-manager/node_modules/node-zookeeper-client/lib/ConnectionManager.js:570:35)
data-broker_1        | 2018-02-07T15:52:19.990500997Z     at emitOne (events.js:116:13)
data-broker_1        | 2018-02-07T15:52:19.990504444Z     at Socket.emit (events.js:211:7)
data-broker_1        | 2018-02-07T15:52:19.990507716Z     at addChunk (_stream_readable.js:263:12)
data-broker_1        | 2018-02-07T15:52:19.990510946Z     at readableAddChunk (_stream_readable.js:250:11)
data-broker_1        | 2018-02-07T15:52:19.990514133Z     at Socket.Readable.push (_stream_readable.js:208:10)
data-broker_1        | 2018-02-07T15:52:19.990517392Z     at TCP.onread (net.js:594:20)
data-broker_1        | 2018-02-07T15:52:20.002142217Z npm ERR! code ELIFECYCLE
data-broker_1        | 2018-02-07T15:52:20.002169708Z npm ERR! errno 1
data-broker_1        | 2018-02-07T15:52:20.003094075Z npm ERR! data-broker@0.0.0 subscription: `node build/src/subscription-manager.js`
data-broker_1        | 2018-02-07T15:52:20.003141176Z npm ERR! Exit status 1
data-broker_1        | 2018-02-07T15:52:20.003605144Z npm ERR! 
data-broker_1        | 2018-02-07T15:52:20.003617666Z npm ERR! Failed at the data-broker@0.0.0 subscription script.
data-broker_1        | 2018-02-07T15:52:20.003622293Z npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
data-broker_1        | 2018-02-07T15:52:20.012724094Z 
data-broker_1        | 2018-02-07T15:52:20.012776568Z npm ERR! A complete log of this run can be found in:
data-broker_1        | 2018-02-07T15:52:20.012891457Z npm ERR!     /root/.npm/_logs/2018-02-07T15_52_20_006Z-debug.log
mmagr commented 6 years ago

Apparently the broker failed to start (zookeeper/kafka was not yet ready perhaps?). Could you please restart a couple of services and try to create the device again a little while after?

docker-compose restart data-broker device-manager persister iotagent
flaviops commented 6 years ago

I followed your instructions but unfortunately no changes to the problem.

It seems to be related with the data broker though:

iotagent_1           | Detected configuration: { mqtt: 
iotagent_1           |    { host: 'mqtt',
iotagent_1           |      port: 1883,
iotagent_1           |      protocolId: 'MQIsdp',
iotagent_1           |      protocolVersion: 3,
iotagent_1           |      secure: false,
iotagent_1           |      tls: 
iotagent_1           |       { key: 'certs/iotagent.key',
iotagent_1           |         cert: 'certs/iotagent.crt',
iotagent_1           |         ca: [ 'certs/ca.crt' ],
iotagent_1           |         version: 'TLSv1_2_method' } },
iotagent_1           |   broker: 
iotagent_1           |    { host: 'zookeeper:2181',
iotagent_1           |      type: 'kafka',
iotagent_1           |      subject: 'device-data',
iotagent_1           |      contextBroker: 'http://data-broker' },
iotagent_1           |   device_manager: 
iotagent_1           |    { consumerOptions: 
iotagent_1           |       { kafkaHost: 'kafka:9092',
iotagent_1           |         sessionTimeout: 15000,
iotagent_1           |         groupId: 'iotagent' },
iotagent_1           |      inputSubject: 'dojot.device-manager.device' },
iotagent_1           |   tenancy: 
iotagent_1           |    { manager: 'http://auth:5000',
iotagent_1           |      subject: 'dojot.tenancy',
iotagent_1           |      consumerOptions: 
iotagent_1           |       { kafkaHost: 'kafka:9092',
iotagent_1           |         sessionTimeout: 15000,
iotagent_1           |         groupId: 'iotagent' } } }
iotagent_1           | Connecting to MQTT broker...
auth_1               | Failed to connect to kong
auth_1               | Creating initial user and permission...
auth_1               | failed to configure verification subsystem
iotagent_1           | ... connected.
iotagent_1           | Registering MQTT callbacks...
iotagent_1           | ... MQTT callbacks registered.
iotagent_1           | ... MQTT connection configured.
iotagent_1           | Creating Kafka producer...
iotagent_1           | ... Kafka client for producer is ready.
iotagent_1           | ... Kafka producer created and callbacks registered.
mqtt_1               | 1518096336: New connection from 172.19.0.19 on port 1883.
zookeeper_1          | 2018-02-08 13:25:36,437 [myid:] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@215] - Accepted socket connection from /172.19.0.19:36369
iotagent_1           | Failed to retrieve tenancy management topic.  getaddrinfo ENOTFOUND data-broker data-broker:80
zookeeper_1          | 2018-02-08 13:25:36,444 [myid:] - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@376] - Unable to read additional data from client sessionid 0x0, likely client has closed socket
zookeeper_1          | 2018-02-08 13:25:36,444 [myid:] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1040] - Closed socket connection for client /172.19.0.19:36369 (no session established for client)
mqtt_1               | 1518096336: Socket error on client <unknown>, disconnecting.
iotagent_1           | npm ERR! code ELIFECYCLE
iotagent_1           | npm ERR! errno 1
iotagent_1           | npm ERR! iotagent-json@0.1.0-next start: `node build/main.js "config.json"`
iotagent_1           | npm ERR! Exit status 1
iotagent_1           | npm ERR! 
iotagent_1           | npm ERR! Failed at the iotagent-json@0.1.0-next start script.
iotagent_1           | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
iotagent_1           | 
iotagent_1           | npm ERR! A complete log of this run can be found in:
iotagent_1           | npm ERR!     /root/.npm/_logs/2018-02-08T13_25_36_450Z-debug.log
postgres_1           | LOG:  unexpected EOF on client connection with an open transaction
ejbca_1              | 13:25:36,550 INFO  [org.ejbca.core.ejb.ca.caadmin.CAAdminSessionBean] (MSC service thread 1-9) Initialized CA: IOTmidCA, with expire time: Mon Nov 11 15:14:49 GMT 2019
ejbca_1              | 13:25:36,588 INFO  [org.cesecore.audit.AuditDevicesConfig] (MSC service thread 1-9) Registered audit device using implementation: org.cesecore.audit.impl.log4j.Log4jDevice
ejbca_1              | 13:25:36,589 INFO  [org.cesecore.audit.AuditDevicesConfig] (MSC service thread 1-9) Configured exporter AuditExporterDummy for device Log4jDevice
ejbca_1              | 13:25:36,590 INFO  [org.cesecore.audit.AuditDevicesConfig] (MSC service thread 1-9) Registered audit device using implementation: org.cesecore.audit.impl.integrityprotected.IntegrityProtectedDevice
ejbca_1              | 13:25:36,591 INFO  [org.cesecore.audit.AuditDevicesConfig] (MSC service thread 1-9) Configured exporter AuditExporterXml for device IntegrityProtectedDevice
ejbca_1              | 13:25:36,597 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;EJBCA_STARTING;SUCCESS;SERVICE;EJBCA;StartServicesServlet.init;;050aac3db5a9;;msg=Init, EJBCA 6.3.1.1 Community (r21429) startup.
ejbca_1              | 13:25:36,651 INFO  [org.ejbca.ui.web.admin.configuration.StartServicesServlet] (MSC service thread 1-9) No database integrity protection available in this version of EJBCA.
ejbca_1              | 13:25:36,653 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;LOG_MANAGEMENT_CHANGE;VOID;SECURITY_AUDIT;CORE;StartServicesServlet.init;;;;msg=No integrity protected security audit logger devices configured.
ejbca_1              | 13:25:36,683 INFO  [org.cesecore.keys.token.SoftCryptoToken] (EJB default - 2) Activated Crypto Token with id 430801795.
ejbca_1              | 13:25:36,684 INFO  [org.ejbca.core.ejb.authorization.ComplexAccessControlSessionBean] (MSC service thread 1-9) Roles or CAs exist, not intializing Super Administrator Role
ejbca_1              | 13:25:36,810 INFO  [org.cesecore.certificates.ocsp.cache.OcspSigningCache] (EJB default - 2) No default responder was defined. OCSP requests for certificates issued by unknown CAs will return "unauthorized" as per RFC6960, Section 2.3
ejbca_1              | 13:25:36,828 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;ACCESS_CONTROL;SUCCESS;ACCESSCONTROL;CORE;StartServicesServlet.init;;;;resource0=/system_functionality/edit_systemconfiguration
ejbca_1              | 13:25:36,834 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;SYSTEMCONF_EDIT;SUCCESS;GLOBALCONF;CORE;StartServicesServlet.init;;;;msg=Saved global configuration with id 0.
ejbca_1              | 13:25:36,856 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;ACCESS_CONTROL;SUCCESS;ACCESSCONTROL;CORE;Internal database constraint test;;;;resource0=/ca/-465120866
ejbca_1              | 13:25:36,863 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;CERT_STORED;SUCCESS;CERTIFICATE;CORE;Internal database constraint test;-465120866;499602D2;checkUniqueIndexTestUserNotToBeUsed_fjasdfjsdjfsad;msg=Certificate stored for username 'checkUniqueIndexTestUserNotToBeUsed_fjasdfjsdjfsad', fp=caba75f68c833c3c2d33f3f5052b7d5a76e80383, subjectDN 'CN=Allow certificate serial number override 1', issuerDN 'CN=CA for EJBCA test certificates', serialNo=499602D2.
ejbca_1              | 13:25:36,873 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;ACCESS_CONTROL;SUCCESS;ACCESSCONTROL;CORE;Internal database constraint test;;;;resource0=/ca/-465120866
ejbca_1              | 13:25:36,879 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;CERT_STORED;SUCCESS;CERTIFICATE;CORE;Internal database constraint test;-465120866;499602D2;checkUniqueIndexTestUserNotToBeUsed_fjasdfjsdjfsad;msg=Certificate stored for username 'checkUniqueIndexTestUserNotToBeUsed_fjasdfjsdjfsad', fp=05a219d835622653192c30eeeee8f01f918b30fb, subjectDN 'CN=Allow certificate serial number override 2', issuerDN 'CN=CA for EJBCA test certificates', serialNo=499602D2.
ejbca_1              | 13:25:36,889 INFO  [org.cesecore.certificates.certificate.CertificateStoreSessionBean] (MSC service thread 1-9) Custom certificate serial number not allowed since there is no unique index on (issuerDN,serialNumber) on the 'CertificateData' table.
ejbca_1              | 13:25:36,901 INFO  [org.cesecore.certificates.certificate.CertificateStoreSessionBean] (MSC service thread 1-9) Removed rows used during test for unique certificate serial number database constraint.
ejbca_1              | 13:25:36,903 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;ACCESS_CONTROL;SUCCESS;ACCESSCONTROL;CORE;StartServicesServlet.init;;;;resource0=/system_functionality/edit_systemconfiguration
ejbca_1              | 13:25:36,912 INFO  [org.cesecore.audit.impl.log4j.Log4jDevice] (MSC service thread 1-9) 2018-02-08 13:25:36+00:00;SYSTEMCONF_EDIT;SUCCESS;GLOBALCONF;CORE;StartServicesServlet.init;;;;msg=Saved global configuration with id OCSP.
apigw_1              | Do not use 'module' as a build type. Use 'builtin' instead.
ejbca_1              | 13:25:36,936 INFO  [org.cesecore.certificates.ocsp.OcspResponseGeneratorSessionBean] (MSC service thread 1-9) No OcspKeyBindings found. Processing ocsp.properties to see if we need to perform conversion.
ejbca_1              | 13:25:36,938 INFO  [org.cesecore.certificates.ocsp.OcspResponseGeneratorSessionBean] (MSC service thread 1-9) Not initing OCSP reload timers, there are already some.
ejbca_1              | 13:25:36,939 INFO  [org.cesecore.certificates.certificate.CertificateStoreSessionBean] (MSC service thread 1-9) Not initing CaCertificateCache reload timers, there are already some.
ejbca_1              | 13:25:36,959 INFO  [org.jboss.web] (MSC service thread 1-9) JBAS018210: Registering web context: /ejbca/adminweb
ejbca_1              | 13:25:36,985 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "ejbca.ear"