1

I try to make a rest web service with java and I use OpenShift service for testing server.

in OpenShift I choose Tomcat 7 (JBoss EWS 2.0) as web server.

when I'm tring to push my files in to server, in maven build time, it give me these errors:

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

It seems like the errors are about my tools.java file.

so here is my tools.java file's codes:

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(":");
    }
}

I wonder because when I use command mvn compile in my PC there is no error and the project compile completely (without any error).

in errors there is a link -> https://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException which I didn't understand which point it's trying to say.

by the way I'm using netbeans as IDE and it's not recognizing any error in my code.

please help me.

1
  • Might be caused by java.util.Base64 being Java 8 only. Try to see if your OpenShift instance does support that language level. Commented Nov 22, 2016 at 12:17

1 Answer 1

1

in the first place, I have to thank Tome.

the problem is for java.util.Base64 (it's only for java 8).

I tried to change the default version of JDK in my cartridge to 1.8.0 (because it has it by default).

I used this tutorial JDK 8 support at DIY cartridge in OpenShift but it's not good enough for me.

I also change :

<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>

to :

<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>

but it cause some other errors.

so because I didn't have enough time , I just change my tools.java to :

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(":");
    } 
}

at the end I saw this : https://stackoverflow.com/a/32748828/6442877 and when I search about wildfly, I decide to use it in feature.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.