Java 发送带有多个(大量)参数的post查询

Java 发送带有多个(大量)参数的post查询,java,post,resteasy,query-parameters,Java,Post,Resteasy,Query Parameters,我们有几个表有50多个字段,这些字段必须使用RESTful服务(RESTeasy)作为参数传递,但是我们希望避免50行@QueryParam(“field”)对象字段。有没有办法发送列表、地图或对象 这是我们目前使用的代码: @POST @Path("/custships") @Produces("application/json") void postCustship(@QueryParam("custShipMap") HashMap<String, Objec

我们有几个表有50多个字段,这些字段必须使用RESTful服务(RESTeasy)作为参数传递,但是我们希望避免50行
@QueryParam(“field”)对象字段。有没有办法发送列表、地图或对象

这是我们目前使用的代码:

@POST
    @Path("/custships")
    @Produces("application/json")
    void postCustship(@QueryParam("custShipMap") HashMap<String, Object> custShipMap);
@POST
@路径(“/custships”)
@生成(“应用程序/json”)
void postCustship(@QueryParam(“custShipMap”)HashMap custShipMap);
这是我们得到的例外:

java.lang.RuntimeException: Unable to find a constructor that takes a String param or a valueOf() or fromString() method for javax.ws.rs.QueryParam("custShipMap") on public abstract void com.waudware.pics.service.ICustshipService.postCustship(java.util.HashMap) for basetype: java.util.HashMap
    at org.jboss.resteasy.core.StringParameterInjector.initialize(StringParameterInjector.java:207)
    at org.jboss.resteasy.core.StringParameterInjector.<init>(StringParameterInjector.java:57)
    at org.jboss.resteasy.core.QueryParamInjector.<init>(QueryParamInjector.java:27)
    at org.jboss.resteasy.core.InjectorFactoryImpl.createParameterExtractor(InjectorFactoryImpl.java:87)
    at org.jboss.resteasy.core.InjectorFactoryImpl.createParameterExtractor(InjectorFactoryImpl.java:65)
    at org.jboss.resteasy.core.MethodInjectorImpl.<init>(MethodInjectorImpl.java:93)
    at org.jboss.resteasy.core.InjectorFactoryImpl.createMethodInjector(InjectorFactoryImpl.java:59)
    at org.jboss.resteasy.core.ResourceMethod.<init>(ResourceMethod.java:76)
    at org.jboss.resteasy.core.ResourceMethodRegistry.processMethod(ResourceMethodRegistry.java:276)
    at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:124)
    at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:106)
    at org.jboss.resteasy.plugins.spring.SpringBeanProcessor.onApplicationEvent(SpringBeanProcessor.java:457)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:948)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
    at org.jboss.resteasy.plugins.spring.SpringContextLoaderListener.contextInitialized(SpringContextLoaderListener.java:44)
    at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:778)
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:425)
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:770)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:275)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1312)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:722)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:490)
    at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:275)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:108)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:90)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:175)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:108)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:90)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:108)
    at org.eclipse.jetty.server.Server.start(Server.java:346)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:90)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
    at org.eclipse.jetty.server.Server.doStart(Server.java:294)
    at org.eclipse.jetty.maven.plugin.JettyServer.doStart(JettyServer.java:78)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
    at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:537)
    at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:352)
    at org.eclipse.jetty.maven.plugin.JettyRunWarMojo.execute(JettyRunWarMojo.java:69)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
java.lang.RuntimeException:在公共抽象void com.waudware.pics.service.ICustshipService.PostCustomship(java.util.HashMap)上找不到为javax.ws.rs.QueryParam(“custShipMap”)获取String参数、valueOf()或fromString()方法的构造函数,该构造函数的基类型为java.util.HashMap
位于org.jboss.resteasy.core.StringParameterInjector.initialize(StringParameterInjector.java:207)
位于org.jboss.resteasy.core.StringParameterInjector。(StringParameterInjector.java:57)
位于org.jboss.resteasy.core.QueryParamInjector。(QueryParamInjector.java:27)
位于org.jboss.resteasy.core.InjectorFactoryImpl.createParameterExtractor(InjectorFactoryImpl.java:87)
位于org.jboss.resteasy.core.InjectorFactoryImpl.createParameterExtractor(InjectorFactoryImpl.java:65)
位于org.jboss.resteasy.core.MethodInjectorImpl.(MethodInjectorImpl.java:93)
位于org.jboss.resteasy.core.InjectorFactoryImpl.createMethodInjector(InjectorFactoryImpl.java:59)
位于org.jboss.resteasy.core.ResourceMethod(ResourceMethod.java:76)
位于org.jboss.resteasy.core.ResourceMethodRegistry.processMethod(ResourceMethodRegistry.java:276)
位于org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:124)
位于org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:106)
位于org.jboss.resteasy.plugins.spring.SpringBeanProcessor.onApplicationEvent(SpringBeanProcessor.java:457)
位于org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
位于org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
位于org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:948)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
位于org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
位于org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
位于org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
位于org.jboss.resteasy.plugins.spring.SpringContextLoaderListener.contextInitialized(SpringContextLoaderListener.java:44)
位于org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:778)
位于org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:425)
位于org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:770)
位于org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:275)
位于org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1312)
位于org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:722)
位于org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:490)
位于org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:275)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
在org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:108)上
位于org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:90)
位于org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
位于org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:175)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
在org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:108)上
位于org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:90)
位于org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
在org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:108)上
位于org.eclipse.jetty.server.server.start(server.java:346)
位于org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:90)
位于org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
位于org.eclipse.jetty.server.server.doStart(server.java:294)
位于org.eclipse.jetty.maven.plugin.JettyServer.doStart(JettyServer.java:78)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
位于org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:537)
位于org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:352)
位于org.eclipse.jetty.maven.plugin.JettyRunWarMojo.execute(JettyRunWarMojo.java:69)
位于org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
在org.apache.maven.lifecycle.int上