JPetShop和Azure Application Insight

时间:2017-01-22 21:20:46

标签: eclipse spring azure-application-insights

我想测试Microsoft Azure的Application Insight工具。 出于这个原因,我使用了一个Spring应用程序jpetshop(https://github.com/mybatis/jpetstore-6),我正在尝试按照本指南设置Application Insight:https://docs.microsoft.com/en-us/azure/application-insights/app-insights-java-get-started

我添加了Maven依赖项和存储库,感谢Eclipse,我使用InstrumentationKey创建了ApplicationInsights.xml文件。我唯一不确定的是如何在此应用程序上添加HTTP过滤器。

我以这种方式修改了web.xml:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <display-name>JPetStore</display-name>
    <description>Online Pet Store Sample Application</description>
    <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
        <param-value>StripesResources</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <filter>
        <display-name>Stripes Filter</display-name>
        <filter-name>StripesFilter</filter-name>
        <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>
        <init-param>
            <param-name>ActionResolver.Packages</param-name>
            <param-value>org.mybatis.jpetstore.web</param-value>
        </init-param>
        <init-param>
            <param-name>Extension.Packages</param-name>
            <param-value>net.sourceforge.stripes.integration.spring</param-value>
        </init-param>

        <init-param>
            <param-name>ApplicationInsightsRequestNameInterceptor</param-name>
            <param-value>com.microsoft.applicationinsights.web.struts.RequestNameInterceptor</param-value>
        </init-param>     

    </filter>
    <filter-mapping>
        <filter-name>StripesFilter</filter-name>
        <servlet-name>StripesDispatcher</servlet-name>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    <servlet>
        <servlet-name>StripesDispatcher</servlet-name>
        <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>StripesDispatcher</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>
</web-app>

但是,如果我按指南中的说明更改过滤器映射器字段,则应用程序将不再起作用。

由于jpetshop应用程序使用Spring框架,我还是要修改* -servlet.xml文件。但是,此项目中不存在此文件。

您知道如何让Azure Application Insight在此应用程序上运行吗? 谢谢

1 个答案:

答案 0 :(得分:1)

我认为您错过了需要定义ApplicationInsights的过滤器的部分:

<filter>
  <filter-name>ApplicationInsightsWebFilter</filter-name>
  <filter-class>
    com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter
  </filter-class>
</filter>
<filter-mapping>
   <filter-name>ApplicationInsightsWebFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>