[mapserver-users] Java - Mapserver
Steve Lime
steve.lime@dnr.state.mn.us
Tue, 03 Sep 2002 16:44:12 -0500
This is a MIME message. If you are reading this text, you may want to
consider changing to a mail reader or gateway that understands how to
properly handle MIME multipart messages.
--=_5D011850.30512F3F
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Aside from new development of an entire MapServer java base...
One way I've done some integration is by using a java bean that acts to
wrap a CGI instance of the mapserver. See the attached source code for a
first attempt. This was written to allow a java developer to embed maps
with dynamically generated points (on his side, in java) into to his
application. On the MapServer side you just have a basic template that
allows for the return of MapServer variables in a java collection
(hash). Simple, but effective in some instances. I've included a sample
template file as well...
Remember, just a first attempt at doing something like this.
Steve
>>> Giri Palanisamy <palanisamyg@ornl.gov> 08/30/02 07:56AM >>>
HI,
I have just installed a mapserver and the demo is working ok for me. I
would like to use Java, JSP with mapserver to generate maps. I have
windows
2000 server, also with Tomcat. Is there any "How to do" information
available? or can I have some sample demo projects?. I don't know how I
can
proceed. Any help inthis regard is greatly appreciated.
Giri
--=_5D011850.30512F3F
Content-Type: text/html
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="file.html"
mapext=[mapext]
img=http://[host]:[port][img]
--=_5D011850.30512F3F
Content-Type: application/octet-stream; name="MapServerBean.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MapServerBean.java"
cGFja2FnZSB1cy5tbi5zdGF0ZS5kbnI7CgppbXBvcnQgamF2YXguc2VydmxldC5odHRwLio7Cmlt
cG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLm5ldC4qOwppbXBvcnQgamF2YS51dGlsLio7Cmlt
cG9ydCBvcmcuYXBhY2hlLm9yby50ZXh0LnBlcmwuKjsKCnB1YmxpYyBjbGFzcyBNYXBTZXJ2ZXJC
ZWFuIHsKICAgIHByaXZhdGUgZmluYWwgaW50IERFRkFVTFRfTlBPSU5UUz0xMDA7CgogICAgcHJp
dmF0ZSBQb2ludEZlYXR1cmUgcG9pbnRzW107CiAgICBwcml2YXRlIGludCBucG9pbnRzPTA7CiAg
ICAKICAgIHByaXZhdGUgU3RyaW5nIG1hcD1udWxsOwogICAgcHJpdmF0ZSBTdHJpbmcgc2VydmVy
PSJodHRwOi8vbWFwcy5kbnIuc3RhdGUubW4udXMvY2dpLWJpbi9tYXBzZXJ2My42IjsKICAgIHBy
aXZhdGUgU3RyaW5nIG1hcGV4dD1udWxsOwogICAgcHJpdmF0ZSBTdHJpbmcgbWFwc2l6ZT1udWxs
OwogICAgcHJpdmF0ZSBTdHJpbmcgbGF5ZXJzPW51bGw7CgogICAgcHVibGljIE1hcFNlcnZlckJl
YW4oKSB7IAoJdGhpcy5wb2ludHMgPSBuZXcgUG9pbnRGZWF0dXJlW0RFRkFVTFRfTlBPSU5UU107
CiAgICB9CiAgICAKICAgIHB1YmxpYyBNYXBTZXJ2ZXJCZWFuKGludCBucG9pbnRzKSB7Cgl0aGlz
LnBvaW50cyA9IG5ldyBQb2ludEZlYXR1cmVbbnBvaW50c107CiAgICB9CiAgICAKICAgIHB1Ymxp
YyB2b2lkIHNldE1hcChTdHJpbmcgbWFwKSB7IHRoaXMubWFwPW1hcDsgfQogICAgcHVibGljIHZv
aWQgc2V0U2VydmVyKFN0cmluZyBzZXJ2ZXIpIHsgdGhpcy5zZXJ2ZXI9c2VydmVyOyB9CiAgICBw
dWJsaWMgdm9pZCBzZXRNYXBleHQoU3RyaW5nIG1hcGV4dCkgeyB0aGlzLm1hcGV4dD1tYXBleHQ7
IH0KICAgIHB1YmxpYyB2b2lkIHNldE1hcHNpemUoU3RyaW5nIG1hcHNpemUpIHsgdGhpcy5tYXBz
aXplPW1hcHNpemU7IH0KICAgIHB1YmxpYyB2b2lkIHNldExheWVycyhTdHJpbmcgbGF5ZXJzKSB7
IHRoaXMubGF5ZXJzPWxheWVyczsgfQoKICAgIHB1YmxpYyB2b2lkIGFkZFBvaW50KGRvdWJsZSB4
LCBkb3VibGUgeSwgU3RyaW5nIGxhYmVsLCBTdHJpbmcgbGF5ZXIpIHsKCXRoaXMucG9pbnRzW3Ro
aXMubnBvaW50c10gPSBuZXcgUG9pbnRGZWF0dXJlKHgseSxsYWJlbCxsYXllcik7Cgl0aGlzLm5w
b2ludHMrKzsKICAgIH0KCiAgICBwcml2YXRlIEhhc2hNYXAgbWFrZVBhcmFtZXRlcnMoU3RyaW5n
IGNvbnRlbnQpIHsKCVBlcmw1VXRpbCBwdSA9IG5ldyBQZXJsNVV0aWwoKTsKCUhhc2hNYXAgcGFy
YW1ldGVycyA9IG5ldyBIYXNoTWFwKCk7CgkKCUFycmF5TGlzdCBsaW5lcyA9IG5ldyBBcnJheUxp
c3QoKTsJCglwdS5zcGxpdChsaW5lcywgIi9cbi8iLCBjb250ZW50KTsgLy8gdHVybiBjb250ZW50
IHN0cmluZyBpbnRvIGEgc2VyaWVzIG9mIGxpbmVzCglJdGVyYXRvciBsaSA9IGxpbmVzLml0ZXJh
dG9yKCk7Cgl3aGlsZSAobGkuaGFzTmV4dCgpKSB7CgkgIFN0cmluZyBsaW5lID0gKFN0cmluZykg
bGkubmV4dCgpOwoKCSAgLy8gdG9zcyBvdXQgY29tbWVudHMgb3IgbGluZXMgd2l0aG91dCBkYXRh
CgkgIGlmKHB1Lm1hdGNoKCIvPCEtLS4qLS0+LyIsIGxpbmUpKSBjb250aW51ZTsKCSAgaWYoIXB1
Lm1hdGNoKCIvPS8iLCBsaW5lKSkgY29udGludWU7CgoJICBBcnJheUxpc3QgZGF0YSA9IG5ldyBB
cnJheUxpc3QoKTsKCSAgcHUuc3BsaXQoZGF0YSwgIi89LyIsIGxpbmUpOwoJICBJdGVyYXRvciBk
aSA9IGRhdGEuaXRlcmF0b3IoKTsKCSAgcGFyYW1ldGVycy5wdXQoZGkubmV4dCgpLCBkaS5uZXh0
KCkpOwoJfQoKCXJldHVybihwYXJhbWV0ZXJzKTsKICAgIH0KCiAgICBwdWJsaWMgSGFzaE1hcCBy
dW5RdWVyeSgpIAoJdGhyb3dzIE1hbGZvcm1lZFVSTEV4Y2VwdGlvbiwgUHJvdG9jb2xFeGNlcHRp
b24sIElPRXhjZXB0aW9uIHsKCUhhc2hNYXAgcmVxdWVzdEhlYWRlcnM7IC8vIHRoZXNlIGhvbGQg
dGhlIHJlcXVlc3QgdG8gdGhlIE1hcFNlcnZlcgoJU3RyaW5nQnVmZmVyIGZvcm1Db250ZW50ID0g
bmV3IFN0cmluZ0J1ZmZlcigpOwoJU3RyaW5nIHJlc3BvbnNlOyAvLyB0aGlzIHdpbGwgaG9sZCB0
aGUgcmVzcG9uc2UgZnJvbSB0aGUgTWFwU2VydmVyCglIYXNoTWFwIHJlc3BvbnNlUGFyYW1ldGVy
czsgLy8gdGhpcyBob2xkcyB0aGUgcGFyYW1ldGVyaXplZCByZXNwb25zZSBmcm9tIHRoZSBNYXBT
ZXJ2ZXIKCgkvKiAKCSoqIHNldCByZXF1ZXN0IGhlYWRlcnMsIG5vbmUgbmVlZGVkIHRoYXQgSSBr
bm93IG9mIAoJKi8KCXJlcXVlc3RIZWFkZXJzID0gbnVsbDsKCgkvKgoJKiogc3VibWl0IHRoZSBy
ZXF1ZXN0IHRvIHRoZSBNYXBTZXJ2ZXIgc2VydmVyIGFuZCBwYWNrYWdlIHRoZSByZXN1bHRzCgkq
LwoJSHR0cFV0aWxzIGh1ID0gbmV3IEh0dHBVdGlscygpOwoJcmVzcG9uc2VQYXJhbWV0ZXJzID0g
bWFrZVBhcmFtZXRlcnMoaHUucG9zdENvbnRlbnRzKHRoaXMuc2VydmVyLCByZXF1ZXN0SGVhZGVy
cywgZm9ybUNvbnRlbnQudG9TdHJpbmcoKSkpOwoJCglyZXR1cm4ocmVzcG9uc2VQYXJhbWV0ZXJz
KTsKICAgIH0KCiAgICBwdWJsaWMgSGFzaE1hcCBnZXRNYXAoKSAKCXRocm93cyBNYWxmb3JtZWRV
UkxFeGNlcHRpb24sIFByb3RvY29sRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CglIYXNoTWFwIHJl
cXVlc3RIZWFkZXJzOyAvLyB0aGVzZSBob2xkIHRoZSByZXF1ZXN0IHRvIHRoZSBNYXBTZXJ2ZXIK
CVN0cmluZ0J1ZmZlciBmb3JtQ29udGVudCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKCUhhc2hNYXAg
cmVzcG9uc2VQYXJhbWV0ZXJzOyAvLyB0aGlzIGhvbGRzIHRoZSBwYXJhbWV0ZXJpemVkIHJlc3Bv
bnNlIGZyb20gdGhlIE1hcFNlcnZlcgoKCS8qIAoJKiogc2V0IHJlcXVlc3QgaGVhZGVycywgbm9u
ZSBuZWVkZWQgdGhhdCBJIGtub3cgb2YgCgkqLwoJcmVxdWVzdEhlYWRlcnMgPSBudWxsOwoJCgkv
KiAKCSoqIHNldCB0aGUgYmFzaWMgY29udGVudCAKCSovCiAgICAgICAgZm9ybUNvbnRlbnQuYXBw
ZW5kKCJtYXA9IiArIFVSTEVuY29kZXIuZW5jb2RlKHRoaXMubWFwKSk7CglpZih0aGlzLmxheWVy
cyAhPSBudWxsKSBmb3JtQ29udGVudC5hcHBlbmQoIiZsYXllcnM9IiArIFVSTEVuY29kZXIuZW5j
b2RlKHRoaXMubGF5ZXJzKSk7CglpZih0aGlzLm1hcGV4dCAhPSBudWxsKSBmb3JtQ29udGVudC5h
cHBlbmQoIiZtYXBleHQ9IiArIFVSTEVuY29kZXIuZW5jb2RlKHRoaXMubWFwZXh0KSk7CglpZih0
aGlzLm1hcHNpemUgIT0gbnVsbCkgZm9ybUNvbnRlbnQuYXBwZW5kKCImbWFwc2l6ZT0iICsgVVJM
RW5jb2Rlci5lbmNvZGUodGhpcy5tYXBzaXplKSk7CgoJLyogCgkqKiBhZGQgcG9pbnRzIHRvIHRo
ZSBjb250ZW50CgkqLwoJZm9yKGludCBpPTA7IGk8dGhpcy5ucG9pbnRzOyBpKyspIHsJICAgIAoJ
ICAgIGZvcm1Db250ZW50LmFwcGVuZCgiJm1hcF8iICsgdGhpcy5wb2ludHNbaV0ubGF5ZXIgKyAi
X2ZlYXR1cmU9bmV3Iik7CgkgICAgZm9ybUNvbnRlbnQuYXBwZW5kKCImbWFwXyIgKyB0aGlzLnBv
aW50c1tpXS5sYXllciArICJfZmVhdHVyZV9wb2ludHM9IiArIHRoaXMucG9pbnRzW2ldLnggKyAi
KyIgKyB0aGlzLnBvaW50c1tpXS55KTsJICAgIAoJICAgIGZvcm1Db250ZW50LmFwcGVuZCgiJm1h
cF8iICsgdGhpcy5wb2ludHNbaV0ubGF5ZXIgKyAiX2ZlYXR1cmVfdGV4dD0iKyBVUkxFbmNvZGVy
LmVuY29kZSh0aGlzLnBvaW50c1tpXS5sYWJlbCkpOwoJfQoKCS8vIFN5c3RlbS5vdXQucHJpbnRs
bihmb3JtQ29udGVudC50b1N0cmluZygpKTsKCgkvKgoJKiogc3VibWl0IHRoZSByZXF1ZXN0IHRv
IHRoZSBNYXBTZXJ2ZXIgc2VydmVyIGFuZCBwYWNrYWdlIHRoZSByZXN1bHRzCgkqLwoJSHR0cFV0
aWxzIGh1ID0gbmV3IEh0dHBVdGlscygpOwoJcmVzcG9uc2VQYXJhbWV0ZXJzID0gbWFrZVBhcmFt
ZXRlcnMoaHUucG9zdENvbnRlbnRzKHRoaXMuc2VydmVyLCByZXF1ZXN0SGVhZGVycywgZm9ybUNv
bnRlbnQudG9TdHJpbmcoKSkpOwoJCQoJcmV0dXJuKHJlc3BvbnNlUGFyYW1ldGVycyk7CiAgICB9
Cn0K
--=_5D011850.30512F3F
Content-Type: application/octet-stream; name="PointFeature.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="PointFeature.java"
cGFja2FnZSB1cy5tbi5zdGF0ZS5kbnI7CgpwdWJsaWMgY2xhc3MgUG9pbnRGZWF0dXJlIHsKICBk
b3VibGUgeCwgeTsKICBTdHJpbmcgbGFiZWw7CiAgU3RyaW5nIGxheWVyOwoKICBwdWJsaWMgUG9p
bnRGZWF0dXJlKGRvdWJsZSB4LCBkb3VibGUgeSwgU3RyaW5nIGxhYmVsLCBTdHJpbmcgbGF5ZXIp
IHsgCiAgICB0aGlzLnggPSB4OwogICAgdGhpcy55ID0geTsKICAgIHRoaXMubGFiZWwgPSBsYWJl
bDsKICAgIHRoaXMubGF5ZXIgPSBsYXllcjsKICB9Cn0K
--=_5D011850.30512F3F--