标签: handler

JAX-WS:在代码中定义服务器端处理程序链,而不是在外部xml中定义

我想为我的jax-ws webservice启用http压缩.我发现我必须使用可以修改http标头的自定义处理程序链.

我找到的所有教程都引用了注释@HandlerChain,指向处理程序链配置xml文件但我的问题是我的webservice必须尽可能轻量级,因此我无法在外部xml文件中定义我的处理程序链.

我尝试了以下但没有成功:

        final Endpoint ep = Endpoint.publish("http://localhost:8878/mywebservice",
                new WebserviceImpl() );
        final Binding binding = ep.getBinding();
        final List<Handler> handlerChain = binding.getHandlerChain();
        handlerChain.add(new MySuperbSOAPHandler());
        binding.setHandlerChain(handlerChain);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?它甚至可能吗?

soap http jax-ws handler chain

2
推荐指数
1
解决办法
1559
查看次数

onCreate中的新处理程序()

我正在我的Activity的onCreate()方法中为UI线程实例化我的Handler.(为了避免内存泄漏风险,Handler不是内部类,它是一个普通的类.)

由于一个Handler对应一个Thread,但是一个Thread可以拥有更多的处理程序(据我所知),每次调用onCreate()都会实例化一个新的Handler实例.因此,如果我的活动再次被重新创建(在onDestroy之后,但在此期间没有任何进程终止),onCreate()将添加另一个Handler而不删除旧的.(在Android源代码中,Handler只询问Thread的Looper并获取对其消息队列的引用.)

什么是最佳解决方案?我应该将一个Handler实例化为静态变量,然后在onCreate()中,我可以检查它是否为null.如果它是非空的,那么就没有必要实例化一个新的,对吧?

(不用说,在onDestroy()中,我将Handler实例中的Activity引用设置为NULL,因此Handler没有泄漏Activity或任何相关的东西 - 我的处理程序的处理方法检查它是否为null,并在需要时丢弃消息但是我的问题是Handler仍然是为了线程保留的,原因在前面的段落中我详细说明了,所以onCreate调用越多,附加到UI线程的Handler实例越多.我的静态解决方案是否正确?这并不重要,那么Android如何检测与当前线程关联的处理程序应该是GC-d?)

multithreading android handler oncreate

2
推荐指数
1
解决办法
1946
查看次数

android中监听器和界面的区别?

监听器,接口,处理程序.

它们听起来很相似,但它们必须不同.

也许在objective-c中'委托'.

android interface listener handler

2
推荐指数
1
解决办法
2217
查看次数

如何在postDelayed模式下停止处理程序?

如果不再计算Handler的计数器怎么能停止?也许你可以告诉我如何处理下面的代码.

 public void handler() {
    nHandler.postDelayed(new Runnable() {
        @Override
        public void run() {

                viewFlipper.setDisplayedChild(8);
        }
    }, 20000);
}
Run Code Online (Sandbox Code Playgroud)

android handler runnable

2
推荐指数
1
解决办法
5160
查看次数

以不同于GET的方式处理POST

我目前在我的C#处理程序(.ashx)中使用context.Request.QueryString,因为到目前为止我只需要处理GET帖子.

如果我通过POST方法发送了一个JSON对象怎么办?我知道我应该反序列化发送的内容,但我的观点是 - 我怎么知道发送源是发送POST还是GET.

为什么?因为我想将处理程序拆分为POST相关函数(通常需要安全性的东西)和更原始的GET相关函数(检索公共信息等)

如果重要,我的代码现在看起来像这样(并且它还没有准备好正确处理POST).

public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "application/json";
    JavaScriptSerializer jss = new JavaScriptSerializer();

    // Wanna know POST was used here, so I can deserialize the sent JSON data
    // ----

    // Handling GET here, good and working
    if (context.Request.QueryString["aname"] != null
        && context.Request.QueryString["type"] != null)
    {
         string adminName = context.Request.QueryString["aname"];
         if(adminName == "test") { // Return some JSON object }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net post json handler

2
推荐指数
1
解决办法
638
查看次数

logging.StreamHandler.setLevel(logging.DEBUG) &lt;--- 不起作用

我不知道为什么它不能记录该消息,我认为一切都设置正确。

并且logging.DEBUGlogging模块下定义

import logging
import sys

logger = logging.getLogger('collega_GUI')
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s %(levelname)s --file: %(module)s --riga: %(lineno)d, %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

logger.debug('def __init__')
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试运行这个,它会起作用

logger.warning('def __init__')
Run Code Online (Sandbox Code Playgroud)

这个级别变量的问题在哪里?

python logging handler

2
推荐指数
1
解决办法
1442
查看次数

ASP.NET Web API 中的参数绑定

我的 Web API 中有一个 DelegatingHandler 用于身份验证 (HMAC)。

我想在请求中添加一个 GET 参数以将用户的 id 返回给我的控制器。

在我的处理程序中,我尝试像这样添加它:

public class SecurityHandler : DelegatingHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        string apikey = request.Headers.GetValues(AuthConfig.ApiKeyHeader).First();
        UserDTO user = UserRepo.GetUser(apikey);
        if (user == null)
        {
            return SendResponseText("Invalid API key");
        }

        // Validate signature ...

        // Add user Id to the URI
        request.RequestUri = new Uri(request.RequestUri.OriginalString + "&UserId=" + user.Id);
        return base.SendAsync(request, cancellationToken);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我能够从请求 uri 中获取新添加的参数,但是参数绑定不起作用

public class MyModel
{
    public int UserId …
Run Code Online (Sandbox Code Playgroud)

c# handler asp.net-web-api

2
推荐指数
1
解决办法
2241
查看次数

从中间件转到 Gin 设置和访问上下文值

我正在尝试在中间件中设置我的用户上下文,然后尝试检查用户是否在其他处理程序函数中具有权限。但是由于某种原因,当我尝试从上下文访问用户时,它返回为 nils。中间件代码似乎正在工作,当我传递有效的 jwt 令牌时,它显示用户正在中间件函数的上下文中设置。但是一旦我点击 getCurrentUser 函数,它就会说它为零。

代码如下:中间件

// Middleware wraps the request with auth middleware
func Middleware(path string, sc *cfg.Server, orm *orm.ORM) gin.HandlerFunc {
    logger.Info("[Auth.Middleware] Applied to path: ", path)
    return gin.HandlerFunc(func(c *gin.Context) {
        t, err := ParseToken(c, sc)
        if err != nil {
            authError(c, err)
        } else {
            if claims, ok := t.Claims.(jwt.MapClaims); ok {
                if claims["exp"] != nil {
                    issuer := claims["iss"].(string)
                    userid := claims["jti"].(string)
                    email := claims["email"].(string)
                    if claims["aud"] != nil {
                        audiences := claims["aud"].(interface{})
                        logger.Warnf("\n\naudiences: %s\n\n", …
Run Code Online (Sandbox Code Playgroud)

rest handler go jwt go-gin

2
推荐指数
1
解决办法
2729
查看次数

在 MFC 回调函数/事件处理程序中捕获异常

我有一个带有模式对话框的 MFC 项目。在代码的开头,我有一个try/catch语句,并尝试throw在代码的各个位置处理异常。

OnBnClickedButton1来自or的异常OnTvnGetdispinfoTree已正确处理,但throw来自OnTvnSelchangedTree未处理 - 见下图。

它是由 Visual Studio 2022 向导生成的基于标准对话框的 MFC 项目。对话框上有一个按钮 和CTreeControl

主要代码与try/catch语句:

try {
  CMFCExceptDlg dlg;
  m_pMainWnd = &dlg;
  INT_PTR nResponse = dlg.DoModal();
  if (nResponse == IDOK)  {
     TRACE(traceAppMsg, 0, "OK...\n");
  }
  else if (nResponse == IDCANCEL)  {
     TRACE(traceAppMsg, 0, "Cancel...\n");
  }
  else if (nResponse == -1)  {
      TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is 
     terminating …
Run Code Online (Sandbox Code Playgroud)

c++ winapi mfc exception handler

2
推荐指数
1
解决办法
157
查看次数

PHP高效页面处理程序

我正在建立一个网站,其中包含每个国家和城市的网址以及餐馆名称.

(www.domain.com/country/city/restaurant-name)

我知道如何为它重写Apache,

问题是如何使它尽可能高效wuth php.

现在我所做的是首先宣布一个二维的国家和城市阵列:

$countries = array("United-Kingdom"=>array("Bristol","London"),
               "Italy"=>array("Rome","Milan","Napoli"));
Run Code Online (Sandbox Code Playgroud)

比我检查城市是否存在:

if (isset ($countries[$page])
Run Code Online (Sandbox Code Playgroud)

然后我对城市使用in_array函数,在数据库中查找餐馆名称.

一系列国家和城市非常庞大,所以我想知道是否有更有效的方法.

我虽然可能为每个国家制作一个php文件并尝试包含它,并在每个php文件中包含城市数组.并可能设置一个将更新文件的cron作业.

我想知道这是最有效的方法,它将使用最少的处理CPU使用率并使服务器尽可能快地为页面提供服务.

php handler

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