uwsgi-docs
uwsgi-docs copied to clipboard
cannot build JVM support
I am trying to follow the directions at: https://uwsgi-docs.readthedocs.io/en/latest/JVM.html
I have installed uWSGI (I think) correctly, but I cannot see how to build the java plugin.
FYI, I am fairly new to and non-expert in uWSGI but have been around java for a while.
My full log is at: http://opencalaccess.org/misc/installing_uwsgi_java.txt
$ sudo sh
#
#
# apt-get install build-essential python-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version.
build-essential set to manually installed.
python-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 353 not upgraded.
#
#
# pip install uwsgi
Downloading/unpacking uwsgi
Downloading uwsgi-2.0.17.1.tar.gz (800kB): 800kB downloaded
Running setup.py (path:/tmp/pip_build_root/uwsgi/setup.py) egg_info for package uwsgi
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'descriptions'
warnings.warn(msg)
. . .
[x86_64-linux-gnu-gcc -pthread] plugins/transformation_template/tt.o
[x86_64-linux-gnu-gcc -pthread] plugins/stats_pusher_socket/plugin.o
*** uWSGI linking ***
x86_64-linux-gnu-gcc -pthread -o /tmp/uwsgi -L/usr/lib -Wl,-rpath,/usr/lib core/utils.o core/protocol.o core/socket.o core/logging.o core/master.o core/master_utils.o core/emperor.o core/notify.o core/mule.o core/subscription.o core/stats.o core/sendfile.o core/async.o core/master_checks.o core/fifo.o core/offload.o core/io.o core/static.o core/websockets.o core/spooler.o core/snmp.o core/exceptions.o core/config.o core/setup_utils.o core/clock.o core/init.o core/buffer.o core/reader.o core/writer.o core/alarm.o core/cron.o core/hooks.o core/plugins.o core/lock.o core/cache.o core/daemons.o core/errors.o core/hash.o core/master_events.o core/chunked.o core/queue.o core/event.o core/signal.o core/strings.o core/progress.o core/timebomb.o core/ini.o core/fsmon.o core/mount.o core/metrics.o core/plugins_builder.o core/sharedarea.o core/rpc.o core/gateway.o core/loop.o core/cookie.o core/querystring.o core/rb_timers.o core/transformations.o core/uwsgi.o proto/base.o proto/uwsgi.o proto/http.o proto/fastcgi.o proto/scgi.o proto/puwsgi.o lib/linux_ns.o core/zlib.o core/yaml.o core/ssl.o core/legion.o core/xmlconf.o core/dot_h.o core/config_py.o plugins/python/python_plugin.o plugins/python/pyutils.o plugins/python/pyloader.o plugins/python/wsgi_handlers.o plugins/python/wsgi_headers.o plugins/python/wsgi_subhandler.o plugins/python/web3_subhandler.o plugins/python/pump_subhandler.o plugins/python/gil.o plugins/python/uwsgi_pymodule.o plugins/python/profiler.o plugins/python/symimporter.o plugins/python/tracebacker.o plugins/python/raw.o plugins/gevent/gevent.o plugins/gevent/hooks.o plugins/ping/ping_plugin.o plugins/cache/cache.o plugins/nagios/nagios.o plugins/rrdtool/rrdtool.o plugins/carbon/carbon.o plugins/rpc/rpc_plugin.o plugins/corerouter/cr_common.o plugins/corerouter/cr_map.o plugins/corerouter/corerouter.o plugins/fastrouter/fastrouter.o plugins/http/http.o plugins/http/keepalive.o plugins/http/https.o plugins/http/spdy3.o plugins/ugreen/ugreen.o plugins/signal/signal_plugin.o plugins/syslog/syslog_plugin.o plugins/rsyslog/rsyslog_plugin.o plugins/logsocket/logsocket_plugin.o plugins/router_uwsgi/router_uwsgi.o plugins/router_redirect/router_redirect.o plugins/router_basicauth/router_basicauth.o plugins/zergpool/zergpool.o plugins/redislog/redislog_plugin.o plugins/mongodblog/mongodblog_plugin.o plugins/router_rewrite/router_rewrite.o plugins/router_http/router_http.o plugins/logfile/logfile.o plugins/router_cache/router_cache.o plugins/rawrouter/rawrouter.o plugins/router_static/router_static.o plugins/sslrouter/sslrouter.o plugins/spooler/spooler_plugin.o plugins/cheaper_busyness/cheaper_busyness.o plugins/symcall/symcall_plugin.o plugins/transformation_tofile/tofile.o plugins/transformation_gzip/gzip.o plugins/transformation_chunked/chunked.o plugins/transformation_offload/offload.o plugins/router_memcached/router_memcached.o plugins/router_redis/router_redis.o plugins/router_hash/router_hash.o plugins/router_expires/expires.o plugins/router_metrics/plugin.o plugins/transformation_template/tt.o plugins/stats_pusher_socket/plugin.o -lpthread -lm -rdynamic -ldl -lz -lssl -lcrypto -lexpat -lpthread -ldl -lutil -lm -lpython2.7 -lcrypt
/usr/bin/ld: cannot open output file /tmp/uwsgi: Is a directory
collect2: error: ld returned 1 exit status
*** error linking uWSGI ***
make: *** [all] Error 1
#
#
# exit
$
$
$ cat foobar.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
$
$ # run with this:
$
$ /usr/local/bin/uwsgi --http :9090 --wsgi-file foobar.py
*** Starting uWSGI 2.0.17.1 (64bit) on [Tue Jan 22 14:53:06 2019] ***
compiled with version: 4.8.4 on 22 January 2019 22:46:49
os: Linux-2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011
nodename: calaccess
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/ray/Projects/foobar_uwsgi
detected binary path: /tmp/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 15704
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on :9090 fd 4
spawned uWSGI http 1 (pid: 31736)
uwsgi socket 0 bound to TCP address 127.0.0.1:55712 (port auto-assigned) fd 3
Python version: 2.7.6 (default, Jun 22 2015, 18:01:27) [GCC 4.8.2]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x20910e0
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72920 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x20910e0 pid: 31735 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 31735, cores: 1)
. . . ( works. I can hit http://localhost:9090 and see my "Hello world" )
$ # and now...
$
$
$ find /usr/lib/jvm -name libjvm.so
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/cacao/libjvm.so
/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server/libjvm.so
/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so
$
$ find /usr/lib/jvm -name jni.h
/usr/lib/jvm/java-8-oracle/include/jni.h
/usr/lib/jvm/java-6-openjdk-amd64/include/jni.h
$
$ UWSGICONFIG_JVM_INCPATH=/usr/lib/jvm/java-8-oracle/include UWSGICONFIG_JVM_LIBPATH=/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server python uwsgiconfig.py --plugin plugins/jvm default
using profile: buildconf/default.ini
Traceback (most recent call last):
File "uwsgiconfig.py", line 1634, in <module>
uc = uConf(bconf)
File "uwsgiconfig.py", line 661, in __init__
self.config.readfp(open_profile(filename))
File "uwsgiconfig.py", line 635, in open_profile
return open(filename)
IOError: [Errno 2] No such file or directory: 'buildconf/default.ini'
$
$ UWSGICONFIG_JVM_INCPATH=/usr/lib/jvm/java-8-oracle/include UWSGICONFIG_JVM_LIBPATH=/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server python uwsgiconfig.py --plugin plugins/jvm core
using profile: buildconf/core.ini
Traceback (most recent call last):
File "uwsgiconfig.py", line 1634, in <module>
uc = uConf(bconf)
File "uwsgiconfig.py", line 661, in __init__
self.config.readfp(open_profile(filename))
File "uwsgiconfig.py", line 635, in open_profile
return open(filename)
IOError: [Errno 2] No such file or directory: 'buildconf/core.ini'
$