我尝试在运行于GlassFish Server 4.0上的REST项目中进行文件上传。
GlassFish服务器(尽管我觉得它令人困惑)在javax.ws.rs库中有自己版本的Jersey库,到目前为止运行良好,但是现在我需要使用MediaType。REST服务器服务上的MULTIPART_FORM_DATA和FormDataContentDisposition,在GlassFish中找不到它们。
因此,我下载了新泽西图书馆并添加了
import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataParam;
对于库,服务器端代码是
@ApplicationPath("webresources")
@Path("/file")
@Stateless
public class FileResource
{
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadWeb(@FormDataParam("file") InputStream inputStream,
@FormDataParam("file") FormDataContentDisposition disposition)
{
int read = 0;
byte[] bytes = new byte[1024];
try
{
while ((read = inputStream.read(bytes)) != -1)
{
System.out.write(bytes, 0, read);
}
}
catch (IOException ex)
{
Logger.getLogger(FileResource.class.getName()).log(Level.SEVERE, null, ex);
}
return Response.status(403).entity(inputStream).build();
}
}
然而,现在每当调用REST资源(即使是以前工作正常的资源)时,我都会收到错误:
org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
如何修复上述错误?如何向GlassFish服务器添加jersey.multipart支持?
Ok通过使用以下仅使用GlassFish可用库的服务器端代码找到了一种方法:
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadWeb(InputStream inputStream)
{
DataInputStream dataInputStream = new DataInputStream(inputStream);
try
{
StringBuffer inputLine = new StringBuffer();
String tmp;
while ((tmp = dataInputStream.readLine()) != null)
{
inputLine.append(tmp);
System.out.println(tmp);
}
}
catch (IOException ex)
{
Logger.getLogger(FileResource.class.getName()).log(Level.SEVERE, null, ex);
}
return Response.status(403).entity(dataInputStream).build();
}
我正在开发一个应用程序和一个库(Android模块)。它们在不交互时没有问题:在导入库后,Android Studio搞乱了设置,我无法恢复。 和其他98个类似的:都与主题问题有关。 还有其他消息引用值、,例如:
我有一个eclipse(版本:2021-09(4.21.0))项目,我得到了“org.w3c.dom包可以从多个模块访问:未命名 组织。w3c。dom是java语言。构建路径上jre系统库(openjdk-17)中的xml。组织。w3c。dom也在xercesImpl-2.12.0模块中。SP03.jar,它包含在添加到我的构建路径的wildfly 25运行时库中。 我的项目需要jar中的xerc
我正在开发一个项目,它访问本地数据库,然后在JBoss AP服务器中调用远程EJB服务。 因此,我使用hibernate-release-4.1.5.Final进行Hibernate,jbossall-client.jar调用远程EJB服务。 但是,当运行jndiContext.lookup("xxx ")方法时,会出现一个异常,消息如下所示。 我已经尝试过,发现Hibernate框架的jboss
你好,我有一个Spring Boot应用程序,正在使用 这取决于泽西版本2.7。 当试图使用 在内部使用泽西版本1.1时,应用程序会失败,因为同一个库有两个不同的版本。 任何关于如何解决这个问题的建议,我都试图只使用2.7版,但它们似乎彼此不兼容 谢谢 java.lang.NoSuchMultiodError:javax.ws.rs.core.pplication.get属性()Ljava/uti
我正在尝试使用NuGet Package Manager控制台将更改部署到数据库。当我发出命令时,该命令失败,并显示一条错误消息: 我的项目目标。NET 4.5.2,据我所知,它提供了在版本。因此,关联库不会放在二进制输出目录中。当我下载版本(Nuget包版本4.3.2)并将其复制到二进制输出目录,以及我的DLL时,我会收到另一条错误消息: 在这两种情况下,例外情况都是并将其抛出到Microsof
我使用pybind11让python调用现有的C模块(库)。但是,在C库中,调用::GetModuleFileName(Visual Studio)来确定加载的模块在C中运行时的物理路径。但是当我通过pybind11从python(Jupyter Notebook)调用库时,python.exe的物理路径会返回。如何配置或更改以确保获得C库的物理路径? C代码是这样的:Lib. h 我ib.cpp