当前位置: 首页 > 知识库问答 >
问题:

在OpenShift上部署时出错

郑俊弼
2023-03-14

我尝试用java做一个rest web服务,并使用OpenShift服务测试服务器。

在OpenShift中,我选择Tomcat 7(JBoss EWS 2.0)作为web服务器。

当我试图将我的文件推入服务器时,在maven构建时,它会给我这些错误:

remote: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project operatorrail: Compilation failure: Compilation failure:
remote: [ERROR] /var/lib/openshift/583387240c1e66c33cXXXXX/app-root/runtime/repo/src/main/java/RestApi/Tools/tools.java:[5,16] error: cannot find symbol
remote: [ERROR] package java.util
remote: [ERROR] /var/lib/openshift/583387240c1e66c33cXXXXX/app-root/runtime/repo/src/main/java/RestApi/Tools/tools.java:[35,25] error: cannot find symbol
remote: [ERROR] -> [Help 1]
remote: [ERROR] 
remote: [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
remote: [ERROR] Re-run Maven using the -X switch to enable full debug logging.
remote: [ERROR] 
remote: [ERROR] For more information about the errors and possible solutions, please read the following articles:
remote: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
remote: An error occurred executing 'gear postreceive' (exit code: 1)
remote: Error message: CLIENT_ERROR: Failed to execute: 'control build' for /var/lib/openshift/583387240c1e66c33cXXXXXX/jbossews
remote: 
remote: For more details about the problem, try running the command again with the '--trace' option.
To ssh://XXXXXX-seyedaliroshan.rhcloud.com/~/git/restoprator.git/
   2233024..a2c2911  master -> master

似乎错误是关于我的tools.java文件。

所以这是我的工具.java文件的代码:

package RestApi.Tools;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

/**
 *  @file tools.java
 *  @brief this file contains some hasher like MD5.
 *
 *  @author Seyed Ali Roshan
 */
public class tools {

    public String md5(String text) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(text.getBytes());

        byte byteData[] = md.digest();


        StringBuilder hexString = new StringBuilder();
        for (int i=0;i<byteData.length;i++) {
            String hex=Integer.toHexString(0xff & byteData[i]);
            if(hex.length()==1) hexString.append('0');
            hexString.append(hex);
        }
        return hexString.toString();
    }

    public String[] conventToUserPass(String text) {
        String patternText = "(?i)Basic ";
        String hashedString = text.replaceFirst(patternText, "");

        byte[] unhased = Base64.getDecoder().decode(text);
        String finalText = new String(unhased);

        return finalText.split(":");
    }
}

我想知道,因为当我在我的PC中使用命令mvn compile时,没有错误并且项目完全编译(没有任何错误)。

在错误中,有一个链接-

顺便说一句,我使用netbean作为IDE,它不会识别我的代码中的任何错误。

请帮帮我。

共有1个答案

龚志文
2023-03-14

首先,我必须感谢Tome。

问题是针对java.util.Base64(它仅适用于java 8)。

我试图将墨盒中JDK的默认版本更改为1.8.0(因为它默认具有它)。

我在OpenShift的DIY墨盒中使用了本教程JDK 8支持,但它对我来说还不够好。

我也改变:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
</properties>

致:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
</properties>

但是它会导致其他一些错误。

所以因为我没有足够的时间,我只是换了工具。java到:

package RestApi.Tools;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.glassfish.jersey.internal.util.Base64;


/**
 *  @file tools.java
 *  @brief this file contains some hasher like MD5.
 *  for decoding base 64 we had to use an library because java.util.Base64 
 *  is for jdk 8 and our server working with jdk 7.
 *
 *  @author Seyed Ali Roshan
 */
public class tools {
    
    public String md5(String text) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(text.getBytes());

        byte byteData[] = md.digest();
        

        StringBuilder hexString = new StringBuilder();
        for (int i=0;i<byteData.length;i++) {
            String hex=Integer.toHexString(0xff & byteData[i]);
            if(hex.length()==1) hexString.append('0');
            hexString.append(hex);
        }
        return hexString.toString();
    }
    
    public String[] conventToUserPass(String text) {
        String patternText = "(?i)Basic ";
        String hashedString = text.replaceFirst(patternText, "");
        
        byte[] unhased = Base64.decode(hashedString.getBytes());
        String finalText = new String(unhased);
        
        return finalText.split(":");
    } 
}

最后我看到了这个:https://stackoverflow.com/a/32748828/6442877当我搜索wildfly时,我决定在功能中使用它。

 类似资料:
  • 我一直试图将Java应用程序部署到OpenShift JBoss7服务器上,由于我使用的是比JBoss7(4.0.1)更新的Hibernate(4.3.4)版本,所以我将较新的JAR包含到: null 我在这里漏掉了什么?我一直在搜索,但找不到这样的东西...求求你,救命!

  • 从我开始尝试在OpenShift上部署一个香草jhipster应用程序到现在已经有一个多星期了。我试过Openshift和我们的Openshift私人公司实例,但没有成功。 我尝试了几种方法来做,使用生成器yo jhipster:openshift或手动使用特定的hook。使用生成器,我做了: .........从这里到那里都有很多例外.........

  • 无法在weblogic服务器上部署jersey REST,是否存在特定于weblogic的REST服务配置? 完全堆栈跟踪- 2018年4月25日下午7:01:53。太阳运动衫服务器impl。应用WebApplicationImpl启动信息:启动泽西岛应用程序,版本“泽西岛:1.2 05/07/2010 02:11 PM”2018年4月25日7:01:53 PM com。太阳运动衫服务器impl。

  • 我在jboss EAP6.4服务器上部署ear文件时遇到问题。下面是原木。请帮帮忙。 13:21:39,000信息[org.jboss.as.server.deployment.scanner](deploymentscanner-threads-2)JBAS015003:在部署目录中找到process-engine.ear。要触发部署,请创建一个名为process-engine.ear.dode

  • 我想在heroku上有一个tilestream,我遵循了教程,我做了完全相同的事情,并不断得到一个构建/编译错误。 刚刚添加了2个文件和一个目录: Procfile: 包裹json: 空的/平铺方向。 当通过git推送到heroku时,我得到以下错误: 当我去网站时,我得到了错误(检查这里) 我还检查了日志: 以及在heroku上运行的进程: 对于这个例子,我没有将地图上传到./ware目录,但是

  • 我在springboot应用程序中有筛选器。在embedded tomcate 9.0.34中运行该应用程序时,它可以正常工作。然而,当我创建war并将其部署在外部Tomcate8.5上时,它会抛出以下错误。