-
Notifications
You must be signed in to change notification settings - Fork 2
/
README.txt
102 lines (70 loc) · 3.51 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
CXF WebService 3Scale plugin example
============================
An example that integrates the 3Scale java plugin with a Camel CXF SOAP proxy route. The code to authenticate and authorize against API Manger is on the org.apache.camel.example.cxf.proxy.APICastBean class
The original example is here: https://github.com/3scale/3scale_ws_api_for_java.git
The documentation of the multiple deployment options for 3Scale can be found here:
https://support.3scale.net/docs/deployment-options/plugin-setup
The credentials to authorize the API invocation:
* AppID
* AppKey
* serviceToken
* serviceId
are defined in src/main/resources/META-INF/spring/camel-config.xml
Dependecies
The dependency for 3Scale plugin:
<dependency>
<groupId>net.3scale</groupId>
<artifactId>3scale-api</artifactId>
<version>3.0.4</version>
</dependency>
When installed on Fuse you will need to also install the jar :
nom-1.2.10.jar
Run
To run it in standalone mode:
You will need to compile this example first:
mvn compile
To run the example in standalone mode type:
mvn camel:run
The proxied webservice is located at
http://localhost:<port 1>/camel-example-cxf-proxy/webservices/incident
The real webservice is located at
http://localhost:<port 2>/real-webservice
The webservice WSDL is exposed at:
http://localhost:<port 1>/camel-example-cxf-proxy/webservices/incident?wsdl
Because we use dynamic port numbers, you have to check the console to get the used one. You will see a message like the following:
{http://reportincident.example.camel.apache.org}ReportIncidentEndpointService from WSDL: etc/report_incident.wsdl
2017-09-22 13:59:50,718 [ing.Main.main()] INFO ServerImpl- Setting the server's publish address to be http://localhost:1101/camel-example-cxf-proxy/webservices/incident
To stop the example hit ctrl + c
To run it on top of JBoss Fuse
Install the bundle and the dependencies either using Fabric profiles:
mvn:org.apache.camel/cxf-proxy-embedded-apicast/2.15.1.redhat-620133
Or on a standalone Fuse instance
Osgi:install org.apache.camel/cxf-proxy-embedded-apicast/2.15.1.redhat-620133
The ports used when the route is installed on Fuse are defined in the incidents.properties file in the resources folder
Test
To make a SOAP call open soapUI or another SOAP query tool and create a new
project w/WSDL of http://localhost:<port 1>/camel-example-cxf-proxy/webservices/incident?wsdl.
Then make SOAP requests of this format:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:rep="http://reportincident.example.camel.apache.org">
<soapenv:Header/>
<soapenv:Body>
<rep:inputReportIncident>
<incidentId>3</incidentId>
<incidentDate>2011-11-18</incidentDate>
<givenName>Myriam</givenName>
<familyName>Fentanes</familyName>
<summary>Bla bla</summary>
<details>More bla</details>
<email>mail@apache.org</email>
<phone>12345678</phone>
</rep:inputReportIncident>
</soapenv:Body>
</soapenv:Envelope>
If the authentication is succesful you should see the output
Body is instance of java.io.InputStream]]
AuthRep on App Id Success: true
Plan: Basic
2017-08-25 07:28:47,442 [tp1591616468-31] INFO input - Exchange[ExchangePattern: InOut, BodyType: null, Body: [Body is instance of java.io.InputStream]]
Incident was 3, changed to 456
Invoked real web service: id=456 by Myriam Fentanes