My configuration in "wiring view" has the following components:
NGSI-source: Monitored NGSI Attributes: position
NGSI Entity to Point: Coordinates attribute: position
And these boxes are connected to Map Viewer, but I can't see the points in the map. Could you please answer the following questions?
Where is the problem?
Should I change the name of the attributes?
Seems that your context broker instance doesn't support https notifications. You have to install Rush and configure your context broker for using it. See this post for more info.
Take into account that the "NGSI Source" operator uses subscriptions while other widgets and operators use plain request (like queries) that works without needing https notifications.
Related
We have SAG Webmethods implementation being used as an API Gateway in our project. We do not have much expertise in WebMethods. Based on a document received from the team which was maintaining this gateway implementation we are trying to build a custom gateway solution using open source software.
There is a soap web service which is being accessed by clients using /soap URL but based on looking at the web service implementation with WebMethods, we can see that the soap web service end point is of the pattern /ws/**.
Any idea where can we check to find how the mapping is happening from incoming url /soap to actual soap webservice end point /ws/**? We checked under "Settings > URL Aliases" of Web Methods Integration Server but there is no url alias set for this mapping.
Could you please help provide some pointers on where such a configuration could be set up for this redirection?
Regards,
Jacob
if i understood the issue the right way, this configuration is done as a part of webMethods code only. you need to open the wM packages in SoftwareAG Designer and in the Service Development perspective of Designer ,Connect to the Integration Server with those packages and have a look at the contents. You need to find something called WSD. if you right click and say property you will see the Element Type as :Web Service Descriptor.Open the WSD and on the right side you can see properties window which can have properties like WSDL URL /Source URI. this is where this /ws/ Config is done. Any requests hitting this URL will be handled by the associated WSD defined.
There is also an option to add an alias here in
admin Console--->Settings-->WebService--->Create provider /Web Service
endpoint Alias
.
In my understanding, ContextBroker provides two API models such as NGSI V1 / V2.
Regarding this options, How can I config the ContextBroker configuration?
For example:
Content-Type : application/json
Accep : application/json
http://example_location:1026/v1/queryContext
You don't need to select API version by configuration. CB supports both simultaneously so it is just a matter of "selecting" it by using the proper URL in RESTful operations:
Those URLs starting with /v1 belong to NGSIv1 version
Those URLs starting with /v2 belong to NGSIv2 version
My recommendation is use always version 2. Eventually v1 could be deprecated and removed from Orion in the future.
Maybe you find useful the following document which compares NGSIv1 vs NGSIv2 and shows how the latter is much more flexible, advanced and powerful.
I'm currently working in an environment where several ORION Context Brokers (OCBs) are deployed and I'm guessing how to include headers in the enquiries.
I mean, when one of the OCBs communicates with other OCB and wants to add additional headers, how it should be handled (if there is a way to)?
Thanks!
If the comunication is done using notifications (i.e. OCB1 is subscribed to OCB2, so OCB1 receives notifications from OCB2), you could use the NGSIv2 custom notifications functionality in order to include custom headers.
See "Custom notifications" section in the NGSIv2 specification document. Pay special attention to the headers field within httpCustom.
I'm trying to trigger an event sending to a consumer according to the DOCS for FIWARE CEP PROTON. There should be a resource in the API to which one can POST and that action should trigger sending output events to consumer.
However, it is not clear if mentioned resource is a literal or variable string. In docs it says: POST localhost:8080/application-name/consumer. I have tried using the name of CEP application I made and deployed to engine, name of the consumer used in that app and combinations with literals from the example, but not one of the resources exist.
Anyone ever used this resource from the API? It would be very helpful to debug with it.
I'm not sure about what your question is. Do you want to POST input events to proton? You can do that using:
POST http://{host}:8080/ProtonOnWebServer/rest/events
application/json
and your event:
{"Name": "event_type_name", "attr1": "value1", "attr2": "value2"}
ProtonOnWebServer is the name of my instance.
You can use any application like POSTER for Firefox.
Hope it helps! :)
If you want the CEP to send output events through REST, you need to add a consumer of type REST to your CEP application definition. In this REST consumer definition, you need to specify the REST service url.
Please note, that this REST service is not a CEP service. The CEP activates external REST service as a client.
In the CEP user guide, under Consumers -> Rest, you can see more details on the various attributes of this consumer definition.
From that user guide:
Rest – this adapter type is a REST client that POSTs events to an external REST
service upon detection of derived events. A Rest type consumer has the following
additional built-in parameters:
URL – the fully qualified URL of the REST service for event push operation
using the POST method.
ContentType – can be "text/plain", "application/xml", or "application/json". This is defined by the REST service.
AuthToken – an optional parameter, that when set, is added as an X-Auth-Token
HTTP header of the request.
I have a working project that uses the FOSUserBundle to handle all things user related, including logging into the system. Now, I'm building an API, and would like users to be able to log into the system by sending their credentials via JSON over HTTPS. I'd also like to be able to use the _remember_me cookie.
So, I need to be able to send either those JSON-decoded credentials or the _remember_me cookie to the FOSUserBundle login mechanism, but I'm not quite sure how to do it. Any suggestions or nudges in the right direction would be greatly appreciated.
You need to create a custom authentication provider and a security factory. This is quite an advanced task, but there's a tutorial here that can help you. http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html
When you create your factory class (implementing the SecurityFactoryInterface) make sure you assign getPosition() to http. The several authentication factories will be called in a strict order depending on their position, so bear in mind that the remember_me position - that takes care of the remember me functionality (provided it is enabled in your security.yml file) - will kick in earlier than the http authentication you are about to implement.
Besides the tutorial above, you can take a look at and study the following built-in authentication factory that can provide useful information:vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpDigestFactory.php