小编Voj*_*ech的帖子

IXMLDOM无法识别XPath last()函数?

美好的一天!我正在使用Delphi 2009和MSXML2_TLB库(IXMLDOM).我需要选择最后一个Meeting节点:

Doc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument;
Doc.loadXML(XmlStr);
tmpNode:= Doc.selectSingleNode('//Meeting[last()]');
Run Code Online (Sandbox Code Playgroud)

但是在上面代码的最后一行我得到了异常:

Project test.exe raised exception class EOleException with message: 'Unknown method
//Meeting[-->last()<--]'
Run Code Online (Sandbox Code Playgroud)

有没有办法如何使用xpath选择最后一个节点,还是我真的必须编写代码来获取节点列表然后选择最后一个元素?

然而版本信息:

Type Lib: C:\WINDOWS\system32\msxml6.dll (1)
LIBID: {F5078F18-C551-11D3-89B9-0000F81FE221}
HelpString: Microsoft XML, v6.0
Run Code Online (Sandbox Code Playgroud)

先感谢您!Vojtech

delphi xpath delphi-2009 xmldom

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

ModelAndView.addObject与Model.addAttribute

美好的一天,我正在学习Spring MVC,我正在按照本教程编写我的小型webapp,但我稍微将其修改为"任务列表"而不是"用户列表".有一件事我不清楚,所以我想请一个解释.这是我的edit.jsp:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<html>
<head>
    <title>Edit task</title>
</head>
<body>
    <h1>Edit task</h1>
    <form:form method="post" action="/update" modelAttribute="task">
        <table>
            <tr>
                <td>Title</td>
                <td><form:input path="title"/></td>
            </tr>
            <tr>
                <td>Description</td>
                <td><form:textarea path="description"/></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value="Save"/></td>
            </tr>
        </table>
    </form:form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的HomePageController.java(版本1)中的方法editTask:

 @RequestMapping("/edit")  
 public ModelAndView editTask(@RequestParam String id, @ModelAttribute Task task) {  
   // Retrieve task from the database
     task = taskService.getTask(id);
     ModelAndView model = new ModelAndView("edit");
     model.addObject("task", task);
     return model;
 }
Run Code Online (Sandbox Code Playgroud)

如果我单击编辑链接以编辑项目(例如/ …

spring-mvc

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

如何在客户端记录SOAP消息?

美好的一天.我正在学习如何编写连接到外部SOAP RCP样式的服务.我正在使用jaxws-maven-plugin插件从WSDL文件生成Java类.我正在使用Spring来创建Web服务客户端bean:

@Configuration
public class StoreServiceConfig {

    @Bean
    public StoreWS storeWS() throws IOException {
        JaxWsPortProxyFactoryBean factoryBean = new JaxWsPortProxyFactoryBean();
        factoryBean.setServiceInterface(StoreWS.class);
        factoryBean.setWsdlDocumentUrl(new ClassPathResource("/wsdl/StoreWS.wsdl").getURL());
        factoryBean.setNamespaceUri("urn_store");
        factoryBean.setServiceName("StoreWSService");
        factoryBean.setEndpointAddress("https://10.34.45.82/storeservice/services/StoreWS");
        factoryBean.setUsername("testuser");
        factoryBean.setPassword("testpassword");
        factoryBean.afterPropertiesSet();
        return (StoreWS) factoryBean.getObject();
    }
}
Run Code Online (Sandbox Code Playgroud)

为了测试客户端,我使用JUnit编写了一个测试类.我用这种方式打电话给客户:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = StoreServiceTestConfig.class)
public class StoreServiceImplTest {
    @Autowired
    private StoreWS storeWS;
    ...
    @Test
    public void testExecuteQuery() throws Exception {
        ...
        StoreResponseType response = storeWS.executeQuery(storeRequest);
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我需要测试将完整的传出和传入SOAP消息记录到控制台中.请问怎么做?越简单越好.

我找到了使用以下系统参数的建议,但它们都不适用于我:

com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true
com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
com.sun.xml.ws.transport.local.LocalTransportPipe.dump=true
com.sun.xml.ws.transport.http.HttpAdapter.dump=true
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring配置类(没有XML)和所有依赖项的最新版本.

我找到了这个答案,但我不知道如何在我的场景中使用它.

提前谢谢了!Vojtech

编辑: 我的logback.xml看起来像这样,但我仍然看不到控制台中的任何肥皂消息:

<?xml version="1.0" encoding="UTF-8"?> …
Run Code Online (Sandbox Code Playgroud)

java spring-ws jax-ws soap-client java-ws

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

我的XPATH表达式无法正常工作

我使用此xpath表达式列出所有"NON TEST"项:

/Items/Item[State!='TEST']/Name
Run Code Online (Sandbox Code Playgroud)

通常输入XML看起来像这样,一切正常:

<Items>
  <Item>
    <Name>Item1</Name>
    <State>ACTIVE</State>
  </Item>
  <Item>
    <Name>Item2</Name>
    <State>TEST</State>
  </Item>
</Items>
Run Code Online (Sandbox Code Playgroud)

但是当Item miss State元素时,xpath表达式什么都不选:

<Items>
  <Item>
    <Name>Item1</Name>
  </Item>
  <Item>
    <Name>Item2</Name>
  </Item>
</Items>
Run Code Online (Sandbox Code Playgroud)

请问,我应该如何更改我的xpath表达式,以便在State元素不存在时它也能正常工作?如果State元素不存在,则Item被视为"NON TEST"项.我没有选择改变xml结构.

xml xpath

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

如何控制我的Win32服务意味着改变它的自定义参数,调度等?

我需要在Delphi XE中开发Win32服务,我需要找到一种方法如何从同一台机器(或者如果可能的话,最终在局域网中的其他机器)控制它.通过控制它我的意思是改变它由我实现的内部参数,而不是Windows服务参数.服务本身不应与桌面交互.你能告诉我最好的方法吗?

delphi windows-services delphi-xe

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

如何在一个包中安装组件和路由插件?

我为Joomla 1.5创建了自定义组件和路由插件,以便为我的组件提供SEO URL,以及不与菜单绑定的文章和类别.现在我必须单独安装我的组件和路由插件.有没有办法在一个包装中安装?

先感谢您!Vojtech

joomla joomla1.5 joomla-extensions joomla-component

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

如何在 Spring Boot 中修改静态资源 index.html?

我做了一个小的 webapp,我想在索引页的底部添加学分注释。从 WAR 文件的 html 页面中删除注释会很容易。所以我想我可以这样修改资源“index.html”:

public class MainPageTransformer implements ResourceTransformer {
    @Override
    public Resource transform(HttpServletRequest request, Resource resource, ResourceTransformerChain transformerChain) throws IOException {
        String html = IOUtils.toString(resource.getInputStream(), UTF_8);
        html = html.replace("</body>", "<div style=\"position: absolute; bottom: 5px;\">Autor</div>\n</body>");
        return new ByteArrayResource(html.getBytes());
    }
}
Run Code Online (Sandbox Code Playgroud)

... 和:

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/client/index.html")
                .addResourceLocations("classpath:/static/client")
                .resourceChain(false)
                .addTransformer(new MainPageTransformer());
    }
}
Run Code Online (Sandbox Code Playgroud)

MainPageTransformer.transform 方法执行后抛出异常:

java.io.FileNotFoundException: Byte array resource [resource loaded from byte array] cannot be resolved to absolute …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc spring-boot

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

EnableResourceServer中断oAuth2授权服务器

我使用Spring Boot版本1.5.2.RELEASE实现了oAuth2授权服务器。授权服务器支持隐式流。使用登录表单(http:// localhost:8200 / login)下面的WebSecurityConfig 可以很好地工作。

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private JpaUserDetailsService userDetailsService;

    @Bean
    @Override
    public UserDetailsService userDetailsServiceBean() throws Exception {
    return userDetailsService;
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
    }

    @Bean
    public AuthenticationProvider authenticationProvider() throws Exception {
    DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
    provider.setUserDetailsService(userDetailsServiceBean());
    provider.setPasswordEncoder(passwordEncoder());
    return provider;
    }

    @Bean
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
    return new ProviderManager(singletonList(authenticationProvider()));
    }

    @Override
    public void configure(WebSecurity web) {
    web.ignoring()
            .antMatchers("/")
            .antMatchers("/docs/**")
            .antMatchers("/swagger/**")
            .antMatchers("/token/**")
            .antMatchers("/v2/*") …
Run Code Online (Sandbox Code Playgroud)

spring-security spring-boot spring-security-oauth2 spring-oauth2

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