Skip to content

Commit a378543

Browse files
committed
add java external handler example in QuickStart
1 parent 8b2b5bc commit a378543

File tree

4 files changed

+180
-2
lines changed

4 files changed

+180
-2
lines changed

QuickStart.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,41 @@ Configuration
6060
}
6161
```
6262

63+
For Java:
64+
65+
```nginx
66+
67+
location /groovy {
68+
handler_type 'java';
69+
handler_name 'mytest.HelloService';
70+
}
71+
72+
73+
```
74+
75+
Make sure that the class of the below source is in the classpath.
76+
```java
77+
package mytest;
78+
79+
import java.util.Map;
80+
81+
import nginx.clojure.java.ArrayMap;
82+
import nginx.clojure.java.NginxJavaRingHandler;
83+
import static nginx.clojure.MiniConstants.*;
84+
85+
public class HelloService implements NginxJavaRingHandler {
86+
87+
@Override
88+
public Object[] invoke(Map<String, Object> request) {
89+
return new Object[] {
90+
NGX_HTTP_OK, //http status 200
91+
ArrayMap.create(CONTENT_TYPE, "text/plain"), //headers map
92+
"Hello, Java & Nginx!" //response body can be string, File or Array/Collection of string or File
93+
};
94+
}
95+
}
96+
```
97+
6398
-----------------------------------
6499

65100
> **Note:**
@@ -82,6 +117,9 @@ http://localhost:8080/clojure
82117
83118
### For Groovy
84119
http://localhost:8080/groovy
120+
121+
### For Java
122+
http://localhost:8080/java
85123
```
86124

87125
We can check the logs/error.log to see error information.

QuickStart.md.html

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,38 @@ <h2>
6565
</li>
6666
</ol>
6767

68+
<p>For Java:</p>
69+
70+
<div class="highlight highlight-nginx"><pre>
71+
<span class="pl-s">location</span> /groovy {
72+
<span class="pl-pdv">handler_type <span class="pl-s1">'java'</span>;</span>
73+
<span class="pl-pdv">handler_name <span class="pl-s1">'mytest.HelloService'</span>;</span>
74+
}
75+
76+
</pre></div>
77+
78+
<p>Make sure that the class of the below source is in the classpath.</p>
79+
80+
<div class="highlight highlight-java"><pre><span class="pl-k">package</span> <span class="pl-s">mytest</span>;
81+
82+
<span class="pl-k">import</span> <span class="pl-s">java.util.Map</span>;
83+
84+
<span class="pl-k">import</span> <span class="pl-s">nginx.clojure.java.ArrayMap</span>;
85+
<span class="pl-k">import</span> <span class="pl-s">nginx.clojure.java.NginxJavaRingHandler</span>;
86+
<span class="pl-k">import static</span> <span class="pl-s">nginx.clojure.MiniConstants.*</span>;
87+
88+
<span class="pl-s">public</span> <span class="pl-s">class</span> <span class="pl-entc">HelloService</span> <span class="pl-s">implements</span> <span class="pl-eoi">NginxJavaRingHandler</span> {
89+
90+
<span class="pl-s">@Override</span>
91+
<span class="pl-s">public</span> <span class="pl-s">Object</span>[] <span class="pl-enf">invoke</span>(<span class="pl-s">Map&lt;<span class="pl-s">String</span>, <span class="pl-s">Object</span>&gt;</span> <span class="pl-v">request</span>) {
92+
<span class="pl-k">return</span> <span class="pl-k">new</span> <span class="pl-s">Object</span>[] {
93+
<span class="pl-c1">NGX_HTTP_OK</span>, <span class="pl-c"><span class="pl-pdc">//</span>http status 200</span>
94+
<span class="pl-s">ArrayMap</span><span class="pl-ko">.</span>create(<span class="pl-c1">CONTENT_TYPE</span>, <span class="pl-s1"><span class="pl-pds">"</span>text/plain<span class="pl-pds">"</span></span>), <span class="pl-c"><span class="pl-pdc">//</span>headers map</span>
95+
<span class="pl-s1"><span class="pl-pds">"</span>Hello, Java &amp; Nginx!<span class="pl-pds">"</span></span> <span class="pl-c"><span class="pl-pdc">//</span>response body can be string, File or Array/Collection of string or File</span>
96+
};
97+
}
98+
}</pre></div>
99+
68100
<hr>
69101

70102
<blockquote>
@@ -85,7 +117,10 @@ <h2>
85117
<span class="pl-pdv">http://localhost:8080/clojure</span>
86118
<span class="pl-pdv"></span>
87119
<span class="pl-pdv">### For Groovy</span>
88-
<span class="pl-pdv">http://localhost:8080/groovy</span></pre></div>
120+
<span class="pl-pdv">http://localhost:8080/groovy</span>
121+
<span class="pl-pdv"></span>
122+
<span class="pl-pdv">### For Java</span>
123+
<span class="pl-pdv">http://localhost:8080/java</span></pre></div>
89124

90125
<p>We can check the logs/error.log to see error information.</p>
91126

quickstart.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
<meta name="description" content="nginx-clojure.github.io : Nginx module for embedding Clojure / Java / Groovy programs, typically those Ring based handlers">
88

99
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
10-
10+
<!-- <link rel="stylesheet" type="text/css" media="screen" href="https://assets-cdn.github.com/assets/github-59da74dcbe2f1d555e306461652274f8741238a64e7b1fe8cc5a286232044835.css">
11+
-->
1112

1213

1314
<!-- bootstrap cdn -->

stylesheets/pygment_trac.css

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,110 @@
6161
.highlight .vi { color: #003333 } /* Name.Variable.Instance */
6262
.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
6363

64+
.highlight .pl-coc,.highlight .pl-entl,.highlight .pl-entm,.highlight .pl-eoa,.highlight .pl-mai .pl-sf,.highlight .pl-mm,.highlight .pl-pdv,.highlight .pl-sc,.highlight .pl-som,.highlight .pl-sr,.highlight .pl-v,.highlight .pl-vpf
65+
{
66+
color: #0086b3
67+
}
68+
69+
.highlight .pl-eoac,.highlight .pl-mdht,.highlight .pl-mi1,.highlight .pl-mri,.highlight .pl-va,.highlight .pl-vpu
70+
{
71+
color: #008080
72+
}
73+
74+
.highlight .pl-c,.highlight .pl-pdc {
75+
color: #b4b7b4;
76+
font-style: italic
77+
}
78+
79+
.highlight .pl-k,.highlight .pl-ko,.highlight .pl-kolp,.highlight .pl-mc,.highlight .pl-mr,.highlight .pl-ms,.highlight .pl-s,.highlight .pl-sok,.highlight .pl-st
80+
{
81+
color: #6e5494
82+
}
83+
84+
.highlight .pl-ef,.highlight .pl-enf,.highlight .pl-enm,.highlight .pl-entc,.highlight .pl-eoi,.highlight .pl-sf,.highlight .pl-smc
85+
{
86+
color: #d12089
87+
}
88+
89+
.highlight .pl-ens,.highlight .pl-eoai,.highlight .pl-kos,.highlight .pl-mh .pl-pdh,.highlight .pl-mp,.highlight .pl-pde,.highlight .pl-stp
90+
{
91+
color: #458
92+
}
93+
94+
.highlight .pl-enti {
95+
color: #d12089;
96+
font-weight: bold
97+
}
98+
99+
.highlight .pl-cce,.highlight .pl-enc,.highlight .pl-kou,.highlight .pl-mq
100+
{
101+
color: #f93
102+
}
103+
104+
.highlight .pl-mp1 .pl-sf {
105+
color: #458;
106+
font-weight: bold
107+
}
108+
109+
.highlight .pl-cos,.highlight .pl-ent,.highlight .pl-md,.highlight .pl-mdhf,.highlight .pl-ml,.highlight .pl-pdc1,.highlight .pl-pds,.highlight .pl-s1,.highlight .pl-scp,.highlight .pl-sol
110+
{
111+
color: #df5000
112+
}
113+
114+
.highlight .pl-c1,.highlight .pl-cn,.highlight .pl-pse,.highlight .pl-pse .pl-s2,.highlight .pl-vi
115+
{
116+
color: #a31515
117+
}
118+
119+
.highlight .pl-mb,.highlight .pl-pdb {
120+
color: #df5000;
121+
font-weight: bold
122+
}
123+
124+
.highlight .pl-mi,.highlight .pl-pdi {
125+
color: #6e5494;
126+
font-style: italic
127+
}
128+
129+
.highlight .pl-ms1 {
130+
background-color: #f5f5f5
131+
}
132+
133+
.highlight .pl-mdh,.highlight .pl-mdi {
134+
font-weight: bold
135+
}
136+
137+
.highlight .pl-mdr {
138+
color: #0086b3;
139+
font-weight: bold
140+
}
141+
142+
.highlight .pl-s2 {
143+
color: #333
144+
}
145+
146+
.highlight .pl-ii {
147+
background-color: #df5000;
148+
color: #fff
149+
}
150+
151+
.highlight .pl-ib {
152+
background-color: #f93
153+
}
154+
155+
.highlight .pl-id {
156+
background-color: #a31515;
157+
color: #fff
158+
}
159+
160+
.highlight .pl-iu {
161+
background-color: #b4b7b4
162+
}
163+
164+
.highlight .pl-mo {
165+
color: #969896
166+
}
167+
64168
.type-csharp .highlight .k { color: #0000FF }
65169
.type-csharp .highlight .kt { color: #0000FF }
66170
.type-csharp .highlight .nf { color: #000000; font-weight: normal }

0 commit comments

Comments
 (0)