如何使用 CUBA Studio 创建应用程序?

How to create an application by using CUBA Studio?

我正在尝试使用 CUBA platform. I configure the CUBA Studio as described here: Installation and Setup

创建一个简单的项目

设置画面如下:

[我在代理后面]

我需要查看示例,但是当我单击 "Samples" 时出现以下错误:

Unable to read the list of samples: java.lang.IllegalArgumentException: Host name may not contain blanks

接下来,我需要选择一个存储库。有两种选择。我选择第一个:

错误:

Repository containing CUBA artifacts not found in: [https://repo.cuba-platform.com/content/groups/work]

在 .haulmont\studio\logs\studio.log 中我看到以下内容:

2018-05-10 08:26:06,475 INFO  [com.haulmont.studio.backend.m.d] [external_req] Load file content https://repo.cuba-platform.com/content/groups/work/com/haulmont/cuba/cuba-global/maven-metadata.xml
2018-05-10 08:26:06,604 WARN  [com.haulmont.studio.ui.n.ae] Unable to read maven-metadata.xml from 'https://repo.cuba-platform.com/content/groups/work/com/haulmont/cuba/cuba-global/maven-metadata.xml'
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    at sun.security.ssl.InputRecord.read(InputRecord.java:503)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
    at com.haulmont.studio.backend.m.d.c(SourceFile:251)
    at com.haulmont.studio.backend.m.d.a(SourceFile:269)
    at com.haulmont.studio.ui.n.ae.a(SourceFile:420)
    at com.haulmont.studio.ui.n.ae.commit(SourceFile:386)
    at com.haulmont.studio.ui.common.b.buttonClick(SourceFile:75)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
    at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
    at com.vaadin.ui.Button.fireClick(Button.java:377)
    at com.vaadin.ui.Button.click(Button.java:54)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
    at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444)
    at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409)
    at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1422)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361)
    at com.haulmont.studio.ui.app.aL.service(SourceFile:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:499)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
    at org.eclipse.jetty.io.AbstractConnection.run(AbstractConnection.java:544)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Thread.java:745)

当我尝试在浏览器中访问存储库时,出现拒绝访问错误。

当我选择另一个存储库时:

我收到以下错误:

Repository containing CUBA artifacts not found in: [https://dl.bintray.com/cuba-platform/main]

在 .haulmont\studio\logs\studio.log 中我看到以下内容:

2018-05-10 08:30:42,727 INFO  [com.haulmont.studio.backend.m.d] [external_req] Load file content https://dl.bintray.com/cuba-platform/main/com/haulmont/cuba/cuba-global/maven-metadata.xml
2018-05-10 08:30:42,957 WARN  [com.haulmont.studio.ui.n.ae] Unable to read maven-metadata.xml from 'https://dl.bintray.com/cuba-platform/main/com/haulmont/cuba/cuba-global/maven-metadata.xml'
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    at sun.security.ssl.InputRecord.read(InputRecord.java:503)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
    at com.haulmont.studio.backend.m.d.c(SourceFile:251)
    at com.haulmont.studio.backend.m.d.a(SourceFile:269)
    at com.haulmont.studio.ui.n.ae.a(SourceFile:420)
    at com.haulmont.studio.ui.n.ae.commit(SourceFile:386)
    at com.haulmont.studio.ui.common.b.buttonClick(SourceFile:75)
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
    at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
    at com.vaadin.ui.Button.fireClick(Button.java:377)
    at com.vaadin.ui.Button.click(Button.java:54)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
    at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
    at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444)
    at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409)
    at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1422)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361)
    at com.haulmont.studio.ui.app.aL.service(SourceFile:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:499)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
    at org.eclipse.jetty.io.AbstractConnection.run(AbstractConnection.java:544)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.run(QueuedThreadPool.java:555)
    at java.lang.Thread.run(Thread.java:745)

我可以在浏览器中访问它。下载的 maven-metadata.xml 文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>com.haulmont.cuba</groupId>
  <artifactId>cuba-global</artifactId>
  <version>6.9.0.BETA2</version>
  <versioning>
    <latest>6.9.0.BETA2</latest>
    <release>6.9.0.BETA2</release>
    <versions>
      <version>6.4.1</version>
      <version>6.4.2</version>
      <version>6.4.4</version>
      <version>6.4.5</version>
      <version>6.5.0.RC1</version>
      <version>6.5.0</version>
      <version>6.5.1</version>
      <version>6.5.3</version>
      <version>6.5.4</version>
      <version>6.5.5</version>
      <version>6.5.6</version>
      <version>6.5.7</version>
      <version>6.5.8</version>
      <version>6.6.0.RC1</version>
      <version>6.6.0</version>
      <version>6.6.1</version>
      <version>6.6.2</version>
      <version>6.6.3</version>
      <version>6.6.4</version>
      <version>6.6.5</version>
      <version>6.7.0.RC1</version>
      <version>6.7.2</version>
      <version>6.7.3</version>
      <version>6.7.4</version>
      <version>6.7.6</version>
      <version>6.7.7</version>
      <version>6.7.8</version>
      <version>6.7.9</version>
      <version>6.7.10</version>
      <version>6.7.11</version>
      <version>6.7.12</version>
      <version>6.8.0.RC1</version>
      <version>6.8.0</version>
      <version>6.8.1</version>
      <version>6.8.3</version>
      <version>6.8.4</version>
      <version>6.8.5</version>
      <version>6.8.6</version>
      <version>6.8.7</version>
      <version>6.9.0.BETA2</version>
    </versions>
    <lastUpdated>20180425061959</lastUpdated>
  </versioning>
</metadata>

尝试在 "Offline" 模式下工作也未成功。

如何使用CUBA Studio创建应用程序?

请阅读 installation manual 的先决条件部分:

If you connect to the internet via a proxy server, some Java system properties must be passed to the JVM running Studio and Gradle. These properties are explained here: http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html (see properties for HTTP and HTTPS protocols).

It is recommended to set these properties system-wide in the JAVA_OPTS environment variable. The Studio launch script passes JAVA_OPTS to the Java executable.

因此,您不应在 *.bat 文件中指定属性,而应将它们作为环境变量提供。