GVKun编程网logo

通过RESTeasy上的NameBinding将过滤器与特定方法匹配

32

针对通过RESTeasy上的NameBinding将过滤器与特定方法匹配这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展###Cause:org.apache.ibatis.binding.B

针对通过RESTeasy上的NameBinding将过滤器与特定方法匹配这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展### Cause: org.apache.ibatis.binding.BindingException: Parameter ''name'' not found. Availa...、.IllegalStateException: Neither BindingResult nor plain target object for bean name ''pfpingji'' available as request attribute、asp.net – 无法从’System.Data.Linq.Binary’转换为’System.IO.BinaryReader’、c# – 通过NetworkStream的BinaryReader和BinaryWriter等相关知识,希望可以帮助到你。

本文目录一览:

通过RESTeasy上的NameBinding将过滤器与特定方法匹配

通过RESTeasy上的NameBinding将过滤器与特定方法匹配

通过遵循RESTeasy文档的建议,我试图指定仅与某些API调用关联的预匹配过滤器。这是我的代码:

名称绑定:

@NameBindingpublic @interface ValidateFoo {}

资源:

@Path("/foo/bar")@Produces(MediaType.APPLICATION_JSON)public class FooBar {    @GET    @ValidateFoo    public Object doStuff() {        //do stuff    }    @POST    public Object doAnotherStuff() {        //do another stuff    }}

过滤:

@ValidateFoo@Provider@PreMatchingpublic class FooValidation implements ContainerRequestFilter {    @Override    public void filter(ContainerRequestContext reqContext) throws IOException {        //validate stuff    }}

问题是:FooValidation过滤器在 每个 方法调用之前运行(例如:在对/ foo /
bar进行GET和POST之前),而不仅是注释的@ValidateFoo(对我来说似乎是一个错误)。如果我@Provider从过滤器中删除了注释,它将不会在任何调用之前运行(如预期的那样)。

我一直在使用WebLogic或Tomcat看到此行为。我的依赖项管理是通过Maven完成的,而RESTeasy版本是3.0-beta-3。

任何人都经历过相同的行为?我在JBoss论坛上看到了另一个有类似问题的用户,到目前为止还没有运气。

更新:RESTeasy 3.0.1-Final仍然遇到相同的问题。

答案1

小编典典

我有类似的问题。对我来说,解决方案是将以下注释配置添加到@ValidateFoo:

@Target({ ElementType.TYPE, ElementType.METHOD })@Retention(value = RetentionPolicy.RUNTIME)@NameBinding

### Cause: org.apache.ibatis.binding.BindingException: Parameter ''name'' not found. Availa...

### Cause: org.apache.ibatis.binding.BindingException: Parameter ''name'' not found. Availa...

org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.apache.ibatis.binding.BindingException: Parameter ''name'' not found. Available parameters are [arg1, arg0, param1, param2]
### The error may involve com.imp.IStudents.insertOne-Inline
### The error occurred while setting parameters
### SQL: insert into students(name,pass) values(?,?)
### Cause: org.apache.ibatis.binding.BindingException: Parameter ''name'' not found. Available parameters are [arg1, arg0, param1, param2]

mmp ,遇到这个错误弄了半天,在百度上找了半天的教程,在 cdsn 上看到说是有两种方法可以

但我测试之后只有第一种方法可行

xml 文件中的插入语句不要变

1   <insert id="insertOne" parameterType="Students">
2        insert into students(name,age) values(#{name},#{age})
3   </insert>

 

改一下接口中的方法的参数

1  void insertOne(@Param("name")String name,@Param("age")int age);
IStudents.java

 

测试方法如下

 

1 @Test
2     public void testInsertOne() throws Exception {
3         SqlSession sqlSession = DataBaseManager.getSqlSession();
4         IStudents mapper = sqlSession.getMapper(IStudents.class);
5         mapper.insertOne("邢逸", 18);
6         sqlSession.commit();
7     }
TestBasic.java

 

.IllegalStateException: Neither BindingResult nor plain target object for bean name ''pfpingji'' available as request attribute

.IllegalStateException: Neither BindingResult nor plain target object for bean name ''pfpingji'' available as request attribute

请问此异常怎么解决

2015-01-16 18:57:18,281 [// -  - ] ERROR /wdtime/pages/Pfpingji/edit.do - Neither BindingResult nor plain target object for bean name ''pfpingji'' available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name ''pfpingji'' available as request attribute
    at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:174)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:194)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:160)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:123)
    at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:408)
    at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:140)
    at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    at _jsp._pages._pfpingji._edit__jsp._jspService(_edit__jsp.java:119)
    at _jsp._pages._pfpingji._edit__jsp._jspService(_edit__jsp.java:30)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:64)
    at com.caucho.jsp.Page.pageservice(Page.java:557)
    at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:194)
    at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:131)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289)
    at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:298)
    at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:116)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:120)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:97)
    at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109)
    at javacommon.filter.LoggerMDCFilter.doFilterInternal(LoggerMDCFilter.java:39)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at cn.org.rapid_framework.web.scope.FlashFilter.doFilterInternal(FlashFilter.java:28)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89)
    at com.caucho.server.webapp.WebAppListenerFilterChain.doFilter(WebAppListenerFilterChain.java:114)
    at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156)
    at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95)
    at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:838)
    at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1346)
    at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1302)
    at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1286)
    at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1194)
    at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:993)
    at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117)
    at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93)
    at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:169)
    at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61)
    at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)
    at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)

asp.net – 无法从’System.Data.Linq.Binary’转换为’System.IO.BinaryReader’

asp.net – 无法从’System.Data.Linq.Binary’转换为’System.IO.BinaryReader’

我的表列是:

AttachContent   varbinary   (max)

当我尝试检索数据时,我得到以下错误,我正在使用linq

无法从’System.Data.Linq.Binary’转换为’System.IO.BinaryReader’

解决方法

System.Data.Linq.Binary包含一个字节数组.您可以像这样直接使用它:

Binary binary = //your linq object
byte[] array = binary.ToArray();

如果你必须在字节数组上有一个BinaryReader,你可以像这样包装它:

BinaryReader reader = new BinaryReader(new MemoryStream(binary.ToArray()));

c# – 通过NetworkStream的BinaryReader和BinaryWriter

c# – 通过NetworkStream的BinaryReader和BinaryWriter

是否可以使用相同的底层NetworkStream同时使用BinaryReader和BinaryWriter

>使用单个线程顺序隔行扫描读写?
>使用1个线程进行读取,使用1个线程进行写入?

(我的目标是通过TcpClient连接同时发送和接收数据)

到目前为止,我遇到了两个相关的帖子:

One引用NetworkStream docs:

Read and write operations can be performed simultaneously on an instance of the NetworkStream class without the need for synchronization. As long as there is one unique thread for the write operations and one unique thread for the read operations,there will be no cross-interference between read and write threads and no synchronization is required.

second引用了BinaryReader docs:

Using the underlying stream while reading or while using the BinaryReader can cause data loss and corruption. For example,the same bytes might be read more than once,bytes might be skipped,or character reading might become unpredictable.

我不是100%肯定如何解释这些引用,我不确定我的2个案例中哪一个是可能的.

解决方法

“是”是简短的答案; NetworkStream本质上充当双工流,读取操作与写入操作完全分开. BinaryReader只会使用read操作,而BinaryWriter只会使用write操作.像Length,Position和Seek这样的概念在NetworkStream上没有意义,也不受支持.所以:这里使用BinaryReader / BinaryWriter应该没有冲突.但是,与此同时,我可能会建议不要使用它们 – 只是因为它们通常实际上并没有使用原始Stream操作增加太多,并且与任意网络协议不兼容.如果你正在实现一些只使用你的代码的自定义:你当然可能没事.

使用BinaryReader / BinaryWriter时触发Stream的警告仍然非常适用于其他一些流 – 例如FileStream:当读者/编写者认为它负责时,你可以通过重新定位流来轻易地破坏数据 – 并且因为有一个单一位置:这意味着读取会影响写入等.但是:这根本不适用于NetworkStream.在这方面:NetworkStream是例外,而不是规则:就你通常对Stream的期望而言,NetworkStream非常不寻常.

关于通过RESTeasy上的NameBinding将过滤器与特定方法匹配的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于### Cause: org.apache.ibatis.binding.BindingException: Parameter ''name'' not found. Availa...、.IllegalStateException: Neither BindingResult nor plain target object for bean name ''pfpingji'' available as request attribute、asp.net – 无法从’System.Data.Linq.Binary’转换为’System.IO.BinaryReader’、c# – 通过NetworkStream的BinaryReader和BinaryWriter的相关知识,请在本站寻找。

本文标签: