[jboss-jira] [JBoss JIRA] (WFLY-9644) Wildfly 11 can't deploy simple REST web service because it can't find javax.ws.rs.core.Application

Marek Kopecký (JIRA) issues at jboss.org
Tue Jul 3 02:48:00 EDT 2018


     [ https://issues.jboss.org/browse/WFLY-9644?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marek Kopecký updated WFLY-9644:
--------------------------------
    Steps to Reproduce: 
Here's my pom.xml and two source files:

{code:xml}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>jax-rs</groupId>
		<artifactId>pdf.upload.topparent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<properties>
		<failOnMissingWebXml>false</failOnMissingWebXml>
	</properties>

	<artifactId>pdf.upload.server</artifactId>
	<packaging>war</packaging>
	<build>
		<finalName>pdfupload</finalName>
	</build>

	<dependencies>
		<!-- https://mvnrepository.com/artifact/javax/javaee-api -->
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
			<version>7.0</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
</project>
{code}

{code:java}
package pdf.upload.server;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;

import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/upload")
public class PdfUploadResource {

	private String uploadToDir = System.getProperty("user.home") + File.separator + "tmp" + File.separator;

	@GET
	public String get() {
		return "PdfUploadResource is alive";
	}
	
	@POST
	@Consumes(MediaType.MULTIPART_FORM_DATA)
	@Produces(MediaType.TEXT_PLAIN)
	public Response submit(@FormParam("pdfStream") InputStream pdfStream) {
		try {
			byte[] pdfByteArray = convertInputStreamToByteArrary(pdfStream);
			String uploadedFileLocation = 
					uploadToDir + UUID.randomUUID().toString() + ".pdf";
			
			writeToFile(new ByteArrayInputStream(pdfByteArray), uploadedFileLocation);
		} catch (Exception ex) {
			return Response.status(500).entity(ex.getMessage()).build();
		}

		return Response.status(200).build();
	}
  ...
}
{code}

{code:java}
package pdf.upload.server;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/app")
public class PdfUploadApplication extends Application {
}
{code}


  was:
Here's my pom.xml and two source files:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>jax-rs</groupId>
		<artifactId>pdf.upload.topparent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<properties>
		<failOnMissingWebXml>false</failOnMissingWebXml>
	</properties>

	<artifactId>pdf.upload.server</artifactId>
	<packaging>war</packaging>
	<build>
		<finalName>pdfupload</finalName>
	</build>

	<dependencies>
		<!-- https://mvnrepository.com/artifact/javax/javaee-api -->
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
			<version>7.0</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
</project>


package pdf.upload.server;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;

import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/upload")
public class PdfUploadResource {

	private String uploadToDir = System.getProperty("user.home") + File.separator + "tmp" + File.separator;

	@GET
	public String get() {
		return "PdfUploadResource is alive";
	}
	
	@POST
	@Consumes(MediaType.MULTIPART_FORM_DATA)
	@Produces(MediaType.TEXT_PLAIN)
	public Response submit(@FormParam("pdfStream") InputStream pdfStream) {
		try {
			byte[] pdfByteArray = convertInputStreamToByteArrary(pdfStream);
			String uploadedFileLocation = 
					uploadToDir + UUID.randomUUID().toString() + ".pdf";
			
			writeToFile(new ByteArrayInputStream(pdfByteArray), uploadedFileLocation);
		} catch (Exception ex) {
			return Response.status(500).entity(ex.getMessage()).build();
		}

		return Response.status(200).build();
	}
  ...
}



package pdf.upload.server;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/app")
public class PdfUploadApplication extends Application {
}




> Wildfly 11 can't deploy simple REST web service because it can't find javax.ws.rs.core.Application
> --------------------------------------------------------------------------------------------------
>
>                 Key: WFLY-9644
>                 URL: https://issues.jboss.org/browse/WFLY-9644
>             Project: WildFly
>          Issue Type: Bug
>          Components: REST
>    Affects Versions: 11.0.0.Final
>         Environment: Ubuntu 16.04, JDK 1.8
>            Reporter: Dean Schulze
>            Assignee: Chao Wang
>         Attachments: test-app.zip
>
>
> Simple JAX-RS .war file with an Application .class file (extends javax.ws.rs.core.Application) and one resource .class file.  No web.xml file.  Deploying gives this error:
> Cannot upload deployment: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.pdfupload.POST_MODULE" => "WFLYSRV0153: Failed to process phase POST_MODULE of deployment \"pdfupload\" Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYRS0006: Could not load JAX-RS Application class Caused by: java.lang.ClassNotFoundException: pdf.upload.server.PdfUploadApplication from [Module \"deployment.pdfupload\" from Service Module Loader]"}}



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list