Monday, 27 January 2020

file upload error Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]

Problem :

file upload error Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]



Solution:


If you are using Spring MVC with Spring security then main problem was in spring security.

I resolved this problem by adding ${_csrf.parameterName}=${_csrf.token} 

to end of my form action


HTML:

1
2
3
4
<form method="POST" action="/uploadExcelFile?${_csrf.parameterName}=${_csrf.token}" enctype="multipart/form-data">
 <input type="file" name="file" /><br/><br/>
 <input type="submit" value="Submit" />
</form>

Error creating shaded jar: Invalid signature file digest for Manifest main attributes

Problem :


Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes


Solution :

You need to add the following to pom.xml:


search for your maven-shade-plugin under <plugin> </plugin>

POM.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
        <configuration>
          <filters>
            <filter>
              <artifact>*:*</artifact>
              <excludes>
                <exclude>META-INF/*.SF</exclude>
                <exclude>META-INF/*.DSA</exclude>
                <exclude>META-INF/*.RSA</exclude>
              </excludes>
            </filter>
          </filters>
        </configuration>



The above configuration filters all files in META-INF ending with .SF, .DSA, and .RSA for all artifacts (*:*) when creating uber-jar file.

The reason java.lang.SecurityException is raised is because some dependency jar files are signed jar files.  A jar file is signed by using jarsigner, which creates 2 additional files and places them in META-INF:
a signature file, with a .SF extension, and
a signature block file, with a .DSA, .RSA, or .EC extension.
Since the uber-jar file is created, the signatures and integrity of signed JAR files are no longer valid.  When the uber-jar file is executed, java.lang.SecurityException is thrown.


Tuesday, 7 January 2020

RetryInvocationHandler: Exception while invoking ConsistencyCheckerS3FileSystem.mkdirs over null. Retrying after sleeping


ERROR :

RetryInvocationHandler: Exception while invoking ConsistencyCheckerS3FileSystem.mkdirs over null. Retrying after sleeping for 10000ms.


Root cause :

 Problem occurs because of below issues:
  • Retry logic in spark and hadoop systems.
  • When a process of creating a file on s3 failed, but it already updated in the Dynamodb.
  • Manual deletion of files and directory from S3 console.
  • when the hadoop process restarts the process as the entry is already present in the Dynamodb. It throws the consistent error.



Solution :

Try re-run your spark job by cleaning up the EmrFSMetadata in dynamo db.

Follow the steps to clean-up & Restore the intended specific directory in the S3 bucket….

 Deletes all the objects in the path, emrfs delete uses the hash function to delete the records, so it may delete unwanted entries also, so we are doing the import and sync in the consequent steps

Delete all the metadata

emrfs import s3://<bucket>/path
Sync the data between s3 and the metadata.

emrfs delete   s3://<bucket>/path
Retrieves the metadata for the objects that are physically present in s3 into dynamo db



Hopefully this will resolve the issue.


Spring boot with CORS

CORS (Cross-Origin Resource Sharing) errors occur when a web application running in a browser requests a resource from a different domain or...