标签: interceptor

NHibernate AssertException:Interceptor.OnPrepareStatement(SqlString)返回null或空SqlString

我正在尝试将表从多对一映射切换为具有中间映射表的多对多映射.但是,当我切换它并试图用NHibernate对它进行查询时,它给了我这个错误:"Interceptor.OnPrepareStatement(SqlString)返回null或空SqlString."

我的查询最初是一些更复杂的问题,但是我将其切换为基本的提取全部并且我仍然遇到问题:

Session.QueryOver<T>().Future();
Run Code Online (Sandbox Code Playgroud)

它似乎是我的模型映射文件中的问题或我的数据库中的某些东西.

这是我的模型映射:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="GBI.Core" namespace="GBI.Core.Models">

<class name="Market" table="gbi_Market">
    <id name="Id" column="MarketId">
        <generator class="identity" />
    </id>
    <property name="Name" />
    <property name="Url" />
    <property name="Description" type="StringClob" />
    <property name="Rating" />
    <property name="RatingComment" />
    <property name="RatingCommentedOn" />
    <many-to-one name="RatingCommentedBy" column="RatingCommentedBy" lazy="proxy"></many-to-one>
    <property name="ImageFilename" />
    <property name="CreatedOn" />
    <property name="ModifiedOn" />
    <property name="IsDeleted" />

    <many-to-one name="CreatedBy" column="CreatedBy" lazy="proxy"></many-to-one>
    <many-to-one name="ModifiedBy" column="ModifiedBy" lazy="proxy"></many-to-one>

    <set name="Content" where="IsDeleted=0 and ParentContentId is NULL" order-by="Ordering asc, CreatedOn asc, Name asc" lazy="extra"> …
Run Code Online (Sandbox Code Playgroud)

nhibernate nhibernate-mapping interceptor

9
推荐指数
1
解决办法
5516
查看次数

如何修改生成的SOAP请求?

我正处于创建输出拦截器的阶段,我从SOAP消息中获取了一个OuputStream.但是如何在将SOAP信封发送到端点之前修改它呢?我想删除一些xml元素.

java cxf outputstream interceptor

9
推荐指数
1
解决办法
1万
查看次数

Struts2中的拦截器线程是否为UNsafe?

我知道Struts2 Action类是线程安全的,因为操作放在Value Stack中.值栈依次是Action Context的一部分.由于Action Context是线程本地的,因此存储在Action Context(包括值栈)中的值对于每个线程都是唯一的.因此,Actions是线程安全的.

但考虑一下拦截器:它们非常有用,它们为程序员完成所有那些繁琐的小工作......比如验证,获取参数值等等.但需要考虑的是:拦截器可以在多个请求之间共享.那么这会使拦截器线程不安全吗?

考虑到这个问题,我试图在网上浏览一些与此问题相关的好文章.我发现了一篇非常好的文章,他们已经清楚地提到了一个示例拦截器如何不是线程安全的.

该网页是:http: //www.bullraider.com/java/struts2/tutorials/interceptors-and-thread-safety

我从这篇文章中得知,拦截器线程不安全的主要原因是拦截器只创建了一次.即每个拦截器只有一个对象.因此,当线程之间共享Interceptor 的相同实例时,实例字段不安全.

在文章的最后,提到有些情况,甚至拦截器都是线程安全的.但他们没有提到任何此类案件.我在网上冲浪找到答案......但是徒劳无功:(

任何人都可以告诉我或给我一个链接,在那里我可以找到如何使拦截器线程安全(或拦截器线程安全时的情况是什么)?

java struts2 thread-safety interceptor

9
推荐指数
1
解决办法
3616
查看次数

CXF/JAX-RS:从拦截器返回自定义响应

我们需要在REST调用期间发生异常时返回自定义错误代码和错误消息.我们已经创建了一个异常映射器提供程序,它适用于应用程序代码中的异常.但是,当从CXF代码发生异常时(例如,形成我编写的CustomValidationInterceptor),它不起作用.

例如,如果我请求无效路径参数(例如无效的phoneNumber).在这种情况下,我们需要返回一个JSON格式的自定义错误代码和错误消息,但即使我们创建以处理WebApplicationException一个例外映射器提供商这是行不通的.

有没有办法处理来自cxf拦截器的异常并返回对用户的响应,如下所示?

{
"errorDetail": {
"errorCode": "404",
"errorMessage": "Bad Request"
}
}
Run Code Online (Sandbox Code Playgroud)

我的CustomValidationInterceptor的代码片段:

public class CustomValidationInterceptor extends AbstractPhaseInterceptor<Message>{

    public CustomValidationInterceptor() {
        super(Phase.PRE_INVOKE); // Put this interceptor in this phase
    }

    public void handleMessage(Message message) {

        MetadataMap<String, String> metadataMap = (MetadataMap<String, String>) message.get("jaxrs.template.parameters");

        if(null != metadataMap) {
            List<String> list = metadataMap.get("phoneNumber");
            if(null != list) {
                String phoneNumber = list.get(0);
                boolean result = validatePhoneNumber(phoneNumber);
                if(!result){
                    throw new TelusServiceException(Response.status(Response.Status.BAD_REQUEST).build(), 400, "phone number not valid");
                }
            } else {
                throw new TelusServiceException(Response.status(Response.Status.BAD_REQUEST).build(), 400, …
Run Code Online (Sandbox Code Playgroud)

java cxf exception jax-rs interceptor

9
推荐指数
1
解决办法
1万
查看次数

什么是拦截器和transformResponse之间的确切区别?

我们可以使用拦截器以及transformRequest和transformresponse来修改数据.

除了拦截器只能在全球范围内添加之外,还有什么区别呢?

此外,即使加载部分也是HTTP get请求,并且响应返回数据.怎么处理这个?

ajax http interceptor angularjs

9
推荐指数
1
解决办法
1479
查看次数

Retrofit 2:自定义拦截器的自定义注解

我有用于身份验证的自定义拦截器:

@Named("authInterceptor")
    @Provides
    @Singleton
    fun providesAuthInterceptor(preferencesManager: PreferencesManager): Interceptor {
        return Interceptor { chain ->
            val newBuilder = chain.request().newBuilder()
            newBuilder.addHeader("access-token", preferencesManager.getAccessToken())
            val request = newBuilder.build()
            return@Interceptor chain.proceed(request)
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是我有一些不需要 auth 标头的调用。

我希望在我的服务中拥有的是:

interface NetService {
    @NEEDAUTH
    @GET("users")
    fun getAllShops(key: String): Single<SomeResponse>

    @FormUrlEncoded
    @POST("users")
    fun register(@Field("nickname") nickname: String): Single<SomeResponse>
}
Run Code Online (Sandbox Code Playgroud)

因此,第一个调用将使用 authInterceptor,第二个调用将不使用它。

android interceptor retrofit2 okhttp3

9
推荐指数
2
解决办法
3391
查看次数

使用新的请求拦截器来假设客户端重试程序?

我目前正在手动构建一个假装客户端并将拦截器传递给它进行授权.我想为一些响应代码提供更智能的Retryer.

public class myErrorEncoder extends ErrorDecoder.Default {

@Override
public Exception decode(final String methodKey, final Response response) {
    if (response.status() == 401) {
        String token = refreshToken();  // I would like to refresh the token and Edit the client
        return new RetryableException("Token Expired will retry it", null);
    } else {
        return super.decode(methodKey, response);
    }
}
Run Code Online (Sandbox Code Playgroud)

}

拦截器

@Bean public CustomInterceptor getInterceptor(String token) {
    return new CustomInterceptor(token);}
Run Code Online (Sandbox Code Playgroud)

假装建设者

 private <T> T feignBuild(final Class<T> clazz, final String uri, final String token) {
    return …
Run Code Online (Sandbox Code Playgroud)

java interceptor spring-cloud-feign feign

9
推荐指数
1
解决办法
923
查看次数

是否可以拦截 Java 11 HttpClient 请求?

基本上如标题所说。Apache HttpClient 和 Spring RestTemplate 允许定义自定义拦截器,这些拦截器环绕请求/响应并允许额外(全局)修改请求参数、日志记录等......

我在标准 Java 实现中没有看到这样的功能java.net.http.HttpClient(从 Java 11 开始)。我是否遗漏了某些东西,或者没有办法在单个上拦截所有请求/响应HttpClient

java http interceptor java-http-client

9
推荐指数
1
解决办法
1739
查看次数

拦截react Native webview的每一个请求

我正在尝试创建一个 WebView,它有一个钩子,可以捕获每个请求,拦截它,允许我编辑它并随后发送它。但我无法找到一种方法来拦截 webview 的每个请求(不仅仅是使用 onNavigationStateChange 进行 url 更改)。

下一步也将改变响应。

有什么想法可以在 React Native 中实现这样的事情吗?

javascript webview interceptor reactjs react-native

9
推荐指数
1
解决办法
3556
查看次数

React Hooks:使用 axios 拦截器显示全局微调器?

我想添加一个 Loader 组件,以便在React 中进行 API 调用时呈现。我想使用react context + hooks 而不是 redux

正如反应钩子的规则所说,我们不应该在反应组件之外使用反应钩子。但是我需要在Axios拦截器内部分派SHOW_LOADER和,如下所示。HIDE_LOADER

有没有办法实现这一目标?

import axios from "axios";
axios.interceptors.request.use(
  config => {
    dispatch({
    type: "SHOW_LOADER"
})
    return config;
  },
  error => {
     dispatch({
    type: "HIDE_LOADER"
})
    return Promise.reject(error);
  }
);

axios.interceptors.response.use(
  response => {
    dispatch({
    type: "HIDE_LOADER"
})
    return response;
  },
  error => {
    dispatch({
    type: "HIDE_LOADER"
})
    return Promise.reject(error);
  }
);
function GlobalLoader(){
    const [state,dispatch] = useContext(LoaderContext);
    return(
        <div>
            {
                state.loadStatus …
Run Code Online (Sandbox Code Playgroud)

interceptor reactjs axios react-context react-hooks

9
推荐指数
1
解决办法
8609
查看次数