2012-06-24 2 views
1

Я пытаюсь запустить приложение для причала на литейном рынке. Кодне может запустить приложение для литейного литейного облака

https://github.com/simbo1905/ZkToDo2

, который может быть запущен локально с

java -Djetty.host=localhost -Djetty.port=8080 -DDATABASE_URL=jdbc:postgresql://postgres:[email protected]/postgres -jar jetty-runner-jmx.jar zktodo2.war 

поэтому я создал PostgreSQL с

vmc create-service postgresql pgsql 

когда застегнул баночку и войну в молнии затем попытаться развертывание в облачный литейный цех, это дает мне ошибку в памяти. Что дает?

simbo$ vmc push zktodo2 --path=cf.zip 
Detected a Standalone Application, is this correct? [Yn]: Y 
1: java 
2: node 
3: node06 
4: ruby18 
5: ruby19 
Select Runtime [java]: \1 
Selected java 
Start Command: java -Djetty.host=${VCAP_APP_HOST} -Djetty.port=${VCAP_APP_PORT} -DDATABASE_URL=jdbc:postgresql://postgres:[email protected]/postgres -jar jetty-runner-jmx.jar zktodo2.war 
Application Deployed URL [None]: 
Memory reservation (128M, 256M, 512M, 1G, 2G) [512M]: 1G 
How many instances? [1]: 
Bind existing services to 'zktodo2'? [yN]: y 
1: pgsql 
Which one?: 1 
Create services to bind to 'zktodo2'? [yN]: 
Would you like to save this configuration? [yN]: y 
Manifest written to manifest.yml. 
Creating Application: OK 
Binding Service [pgsql]: OK 
Uploading Application: 
    Checking for available resources: OK 
    Processing resources: OK 
    Packing application: OK 
    Uploading (0K): OK 
Push Status: OK 
Staging Application 'zktodo2': OK            
Starting Application 'zktodo2': . 
Error: Application [zktodo2] failed to start, logs information below. 

====> /logs/stderr.log <==== 

Could not create the Java virtual machine. 

====> /logs/stdout.log <==== 

    Error occurred during initialization of VM 
    Could not reserve enough space for object heap 


    Delete the application? [Yn]: 

Что дает?

ответ

2

Cloud Foundry добавляет параметр -Xmx для выбранного выделенного выделения памяти в переменную env JAVA_OPTS, которую вы должны включить в свою стартовую команду (java $ JAVA_OPTS -Djetty ....). В качестве альтернативы вы можете включить -Xmx в свою команду запуска.

+0

Спасибо Дженнифер, я пытался следовать вашим примерам. Это меня заводит. Теперь я получаю жалобу на «угаданный» postgres url. Я получаю соединение, отклоненное для подключения к URL-адресу jdbc, который я дал, который был «-DDATABASE_URL = postgres: // postgres: postgres @ localhost/postgres». Я посмотрел на документ примера spring + postgres, но на самом деле у него есть база данных hsqldb в конфигурации spring, а не фактическое соединение postgresql. – simbo1905

+0

Приложение представляет собой демо-версию zk framework, которая работает на openshift и heroku. Любой шанс, что вы могли бы сэкономить несколько циклов, чтобы поместить его в cf? Взамен я буду транслировать в сообщество zk. – simbo1905

+0

Вы не получаете Spring «autoreconfig», так как вы развертываете автономное приложение. Вам нужно посмотреть среду var VCAP_SERVICES, чтобы получить информацию о подключении postgres. Например, посмотрите http://gho-env.cloudfoundry.com/ и проверьте VCAP_SERVICES var. –

1

Я действительно использовал ZkToDo2 on cloudfoundry с причалом. Вот команда начала я использовал:

java -Djava.io.tmpdir=. -Dorg.apache.jasper.compiler.disablejsr199=true -Xmx512M -jar jetty-runner-jmx.jar --port ${VCAP_APP_PORT} zktodo2.war 

Для того, чтобы иметь DATABASE_URL согласовать параметры соединения базы данных PostgreSQL Утвержденные по cloudfoundry, я должен был сделать некоторые небольшие изменения в приложение.

Адрес pull request.

+0

Спасибо Hugues, я вырвал конфигурацию, чтобы разобрать переменные env облака в отдельную конфигурацию https://github.com/simbo1905/ZkToDo2/blob/master/cloudforge/dburl-context.xml, затем добавил профиль maven, который меняет в этой конфигурации и упаковывает необходимую банку при построении с помощью пакета mvn -p cloudfoundry – simbo1905

+0

Я также поместил Jennifer рекомендуемые $ JAVA_OPTS в manifest.yml. – simbo1905

Смежные вопросы