尝试通过GlassFish在Netbeans上运行Vaadin Web应用程序项目,但显然服务器不会自动启动

问题描述 投票:0回答:1

因此,正如这个问题的标题所示,我正在使用Netbeans上的Vaadin项目。在ISOLATION中运行GlassFish服务器时,根本没有问题; Java Database DB Process和GlassFish Server的输出日志都没有显示错误。作为进一步的证据,我可以成功转到已启动的localhost服务器,如此屏幕截图所示:

enter image description here

如URL中所示,我为此服务器选择的端口是8080(管理端口是4848,我也可以成功地去那里)。但是,当我运行我的Vaadin项目时,我假设它将自动启动服务器,然后显示在那里运行项目的结果(根据https://vaadin.com/docs/v8/framework/getting-started/getting-started-netbeans.html),我甚至无法连接到localhost:8080。作为参考,我确实在项目选项中选择了服务器(右键单击我的项目 - >属性 - >运行 - >服务器[下拉列表]。

我原本以为这只是我项目中代码的某种问题(也可能是其中的一部分),但是我不能理解这个假设如下:

1)项目成功构建,没有任何失败声明

2)服务器的图标没有显示旁边的绿色播放标志(我使用的是GlassFish Server,而不是Mark 2,但是无论如何都没有显示标志),当我单独运行它时它会这样做:

enter image description here

3)我刚刚运行项目与手动启动服务器之间存在显着差异,然后运行项目。作为参考,这是我在仅运行项目后尝试连接到服务器的结果:

enter image description here

这是在首先手动启动服务器然后运行项目后访问服务器的结果;请注意,项目的名称是nchandlerv2,但不管我在localhost之后放的是什么:8080 /(例如在下面的图片中,我使用了nchandl,我认为它会完全失败):

enter image description here

然而,对我来说特别令人困惑的是,在这种情况下,我仍然可以去localhost:8080就好了(只要没有附加任何内容)。所以我想我的问题归结为以下几点:

1)为什么服务器在我运行项目时不会自动启动(或者至少为什么会这样)?我已经在底部提供了我的项目的init方法的代码,但我认为这是项目可以运行所需的全部内容(我的MainUI类扩展了UI(它本身来自Vaadin)然后覆盖了init方法)2)当我第一次手动启动服务器然后运行项目时,为什么服务器遇到HTTP错误?

这是代码:

import com.vaadin.annotations.Push;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.Page;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.themes.ValoTheme;
import com.cisco.stbarth.netconf.anc.NetconfSSHClient;
import com.vaadin.ui.UI;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.ArrayList;
import javax.servlet.annotation.WebServlet;


@Theme("adtportal")
@Push
public class MainUI extends UI{
    String hostName;
    String ssh_ip;
    String username;
    String password;
    String pathToYangRepoHTTP;
    //String pathToYangRepoSCP;  <<TO BE USED POTENTIALLY LATER>>
    //The below returns in the format: [(SC1, ([YP1_1, YC1_1, XML1_1], 
[YP1_2, YC1_2, XML1_2] ...)), (SC2, ...) .... ] 
    LinkedHashMap<String, ArrayList<String[]>> showCommandsToPathYangXML = 
new LinkedHashMap<>();

    NetconfSSHClient client;
    YangParser parser;
    Collection <String> capabilities;
    //Curretnly, whichView's values correspond to the following transitions:
    //0: go to RetrieverView
    //1: go to ShowCommandView
    //2: go to TabView (one tab per show command), each tab of which contains subtabs for YANG paths
    int whichView;




    @Override
    protected void init(VaadinRequest vaadinRequest) {
        Page.getCurrent().setTitle("New NETCONF Tool");
        addStyleName(ValoTheme.UI_WITH_MENU);
        showNextView();
    }

    //oldShowValues is only really applicable when going from TabView back to ShowCommandView
    public void showNextView(String ... oldShowValues) {
        switch (whichView) {
            case 0:
                setContent(new RetrieverView(this));
                //addStyleName("loginview");
                break;
            case 1:
                //setSizeFull();
                getPage().setTitle("Netconf session with: " + hostName);
                setContent(new ShowCommandView(this));
                // Might be transferring from 2 to 1, not just from 0 to 1
                //removeStyleName(getStyleName());
                //addStyleName("showcommandview");
                break;
            case 2:
                setContent(new TabView(this));
                //removeStyleName("showcommandview");
                //addStyleName("tabview");
                break;
            default:
                System.out.println("To be further developed.");
                break;
        }
    }

    @WebServlet(urlPatterns = {"/hello"}, name = "MyUIServlet", 
asyncSupported = true)
    @VaadinServletConfiguration(ui = MainUI.class, productionMode = true)
    public static class MyUIServlet extends VaadinServlet {
    }

}

编辑:显然这是在Glassfish服务器输出中(并且只有在我尝试访问localhost中的任何地方时才会出现:8080(例如/ nchandler) - 也就是说,当我单独运行服务器时它不存在):

Severe: SEC5054: Certificate has expired: [
[
  Version: V3
  Subject: CN=GTE CyberTrust Root 5, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
  Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
  Key:  Sun RSA public key, 2048 bits
  modulus: 23741889829347261660812437366387754385443431973861114865490414153884050331745811968523116847625570146592736935209718565296053386842135985534863157983128812774162998053673746470782252407673402238146869994438729551246768368782318393878374421033907597162218758024581735139682087126982809511479059100617027892880227587855877479432885604404402435662802390484099065871430585284534529627347717530352189612077130606642676951640071336717026459037542552927905851171460589361570392199748753414855675665635003335769915908187224347232807336022456537328962095005323382940080676931822787496212635993279098588863972868266229522169377
  public exponent: 65537
  Validity: [From: Fri Aug 14 07:50:00 PDT 1998,
               To: Wed Aug 14 16:59:00 PDT 2013]
  Issuer: CN=GTE CyberTrust Root 5, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
  SerialNumber: [    01b6]
Certificate Extensions: 4
[1]: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:5
]
[2]: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [1.2.840.113763.1.2.1.3]
[]  ]
]
[3]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]
[4]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 76 0A 49 21 38 4C 9F DE   F8 C4 49 C7 71 71 91 9D  v.I!8L....I.qq..
]
]
]
java netbeans vaadin glassfish-3
1个回答
0
投票

好吧,显然,问题出在我系统的环境变量上;在过去的某个时候,我用路径变量做了一些搞乱,我发现我忘记将C:\ Windows \ System32添加回系统的路径。

在输出中的“BUILD SUCCESSFUL”消息之后,实际上有另一条消息:“cmd不被识别为内部或外部命令”。现在,在线搜索解决方案并修复环境变量可以在我运行项目时运行服务器。

© www.soinside.com 2019 - 2024. All rights reserved.