小编nai*_*vin的帖子

从HttpURLConnection获取InputStream对象时出现FileNotFoundException

我正在尝试使用HttpURLConnection向网址发送帖子请求(在java中使用cUrl).请求的内容是xml,在结束时,应用程序处理xml并将记录存储到数据库,然后以xml字符串的形式发回响应.该应用程序在本地托管在apache-tomcat上.

当我从终端执行此代码时,会按预期将一行添加到数据库中.但是从连接获取InputStream时会抛出异常,如下所示

java.io.FileNotFoundException: http://localhost:8080/myapp/service/generate
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1401)
    at org.kodeplay.helloworld.HttpCurl.main(HttpCurl.java:30)
Run Code Online (Sandbox Code Playgroud)

这是代码

public class HttpCurl {
    public static void main(String [] args) {

        HttpURLConnection con;

        try {
            con = (HttpURLConnection) new URL("http://localhost:8080/myapp/service/generate").openConnection();
            con.setRequestMethod("POST");
            con.setDoOutput(true);
            con.setDoInput(true);

            File xmlFile = new File("test.xml");

            String xml = ReadWriteTextFile.getContents(xmlFile);                

            con.getOutputStream().write(xml.getBytes("UTF-8"));
            InputStream response = con.getInputStream();

            BufferedReader reader = new BufferedReader(new InputStreamReader(response));
            for (String line ; (line = reader.readLine()) != null;) {
                System.out.println(line);
            }
            reader.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException …
Run Code Online (Sandbox Code Playgroud)

java inputstream filenotfoundexception httpurlconnection

96
推荐指数
5
解决办法
11万
查看次数

调试crontab作业

我在将运行Java可执行文件的Linux服务器上添加了一个crontab条目.Java代码使用自己的类将错误和消息记录到日志文件中.

但是当我在预定时间之后检查了日志文件时,没有记录任何消息.应该至少有一条日志消息说执行已经开始.

所以有两个可能的原因:

  1. 代码已执行但未记录;
  2. 或者,代码根本没有执行.

指定的日志文件具有chmod 777权限,所以我猜这是第二个原因.

为什么crontab作业不会在预定时间执行?如何在没有任何日志记录的情况下调试它?

我已经读过,如果有错误,cron会向用户发送一封电子邮件.如何找出与用户关联的电子邮件地址?

linux cron

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

获取提交列表以及Git中的提交消息和哈希

我在Git有一个项目.我想要的是仅提交消息和两个提交之间的哈希的列表,并将其存储在文本文件中.有没有这样做的命令?

谢谢.

git

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

在运行第一次测试之前设置PHPUnit并在运行最后一次测试后拆除

我正在尝试使用PHPUnit为php应用程序实现类似Django的测试实用程序.就像Django一样,我的意思是在运行第一个测试之前从主数据库创建一个单独的测试数据库,并在运行最后一个测试后删除它.即使一次运行多个测试用例,也只需创建一次测试数据库.

为此,我采取了以下方法 -

我定义了一个自定义测试套件类,以便我可以在其设置和拆卸方法中编写用于创建和删除db的代码,然后使用此类运行测试,如下所示

$ phpunit MyTestSuite
Run Code Online (Sandbox Code Playgroud)

MyTestSuite定义了一个名为的静态方法suite,我只是使用glob它并将测试添加到testsuite,如下所示

public static function suite() {
    $suite = new MyTestSuite();

    foreach (glob('./tests/*Test.php') as $tc) {
        require_once $tc;
        $suite->addTestSuite(basename($tc, '.php'));
    }

    return $suite;
}
Run Code Online (Sandbox Code Playgroud)

所有测试用例类都从子类延伸,PHPUnit_Framework_TestCase并且此类的setup和teardown方法负责从json fixture文件加载和清除初始数据.

现在作为没有.测试正在增加,我需要一次只运行一个选定的测试.但由于我已经使用测试套件加载测试,因此无法使用--filter选项.这让我觉得这种方法可能不正确.

所以我的问题是,在运行第一个测试之前和运行最后一个测试之后做什么的正确方法是什么,而不管PHPUnit如何找到它们?

PS:我没有使用PHPUnit_Extensions_Database_TestCase,而是我自己创建,填充和删除数据库的实现.

php phpunit

20
推荐指数
3
解决办法
3万
查看次数

apache代理模块给出403禁止错误

我正在尝试使用apache的代理模块在ubuntu桌面上使用xmpp.为此,我做了以下事情 -

1)通过在mods-enabled目录中的/ etc/apache2/mods-available /创建proxy.conf,proxy.load和proxy_http.load的符号链接来启用mod_proxy.

2)在vhost中添加以下行

    <Proxy http://mydomain.com/httpbind>
     Order allow,deny
     Allow from all
   </Proxy>

   ProxyPass /httpbind http://mydomain.com:7070/http-bind/
   ProxyPassReverse /httpbind http://mydomain.com:7070/http-bind/
Run Code Online (Sandbox Code Playgroud)

我是新手使用代理模块,但我可以从上面的行中做出的是将请求http://mydomain.com/httpbind转发到http://mydomain.com:7070/http-bind/.如果错了,请更正.

3)Allow from .mydomain.com在/mods-available/proxy.conf中添加了规则

现在我尝试访问http://mydomain.com/httpbind它显示403 Forbidden错误..

我在这里失踪了什么?请帮忙.谢谢

编辑:当我在mods_available/proxy.conf中更改以下代码时问题得到解决

    <Proxy *>
            AddDefaultCharset off
            Order deny,allow
    Deny from all 
    Allow from mydomain.com                        
    </Proxy>
Run Code Online (Sandbox Code Playgroud)

    <Proxy *>
            AddDefaultCharset off
            Order deny,allow
    #Deny from all 
    Allow from all                         
    </Proxy>
Run Code Online (Sandbox Code Playgroud)

虽然没有得到初始代码的错误

xmpp apache2 mod-proxy

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

使用具有相同@XmlRootElement名称的多个类的Jaxb2Marshaller

我正在使用spring-mvc和Jaxb2Marshaller开发Web服务.

我有两个类,都注释了相同的@XmlRootElement名称

@XmlRootElement(name="request")
class Foo extends AstractRequest {

}

@XmlRootElement(name="request")
class Bar extends AbstractRequest {

}
Run Code Online (Sandbox Code Playgroud)

所有三个类(AbstractRequest,Foo,Bar)都以相同的顺序包含在classesToBeBound列表中

现在使用Bar的请求工作正常.但是在使用消息进行解组时,使用Foo的那个会抛出一个ClassCastException异常Bar cannot be cast to Foo

控制器代码是这样的,

Source source = new StreamSource(new StringReader(body));
Foo request = (Foo) this.jaxb2Marshaller.unmarshal(source); 
Run Code Online (Sandbox Code Playgroud)

我想这种情况正在发生,因为Bar有点覆盖Foo,因为它是在Spring的servlet.xml文件中绑定的类列表中的Foo之后编写的

但是我也有多个带有注释的类,@XmlRootElement(name="response")并且编组响应不会产生任何问题.

有没有办法指定jaxb2Marshaller用于解组的类?

spring-mvc jaxb jaxb2

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

emacs lisp中的评估顺序

我试图在emacs lisp中写一些我的第一个代码,我无法理解以下行为

(defun sq (x) (* x x))

(member 9 '(1 2 3 4 (sq 3)))
Run Code Online (Sandbox Code Playgroud)

这评估到nil但我期待的价值是(9)

现在我想*emacs lisp使用应用程序顺序评估,那么为什么在应用函数之前不评估列表呢?

因为我只是为了测试非零条件而需要它,所以我最终可以使其工作如下,

(member 9 (cons (sq 3) '(1 2 3 4)))
Run Code Online (Sandbox Code Playgroud)

评估为 (9 1 2 3 4)

我的问题是这是否有效,因为它(sq 3)是一个函数(cons)的"直接"参数,不像前面的例子,它是一个参数内的元素?cons在这里使用可接受的解决方法还是有更好/正确的方法来获得所需的行为?

*虽然无法确定哪些订单评估emacs lisp使用,我在计划解释器中尝试了相同的表达式并得到了相同的答案,并且从SICP我知道该方案使用应用程序订单评估.现在我真的很困惑!

任何帮助赞赏.

lisp emacs elisp operator-precedence

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

网格未出现在Magento的自定义管理模块中

我正在尝试在magento admin中创建自定义模块.我已经达到了将新链接添加到菜单并通过单击它的程度,我可以导航到模块控制器的索引操作.但是在这里我看不到网格,只显示了标题文本和块结构中添加的按钮.

我可以看到,由于这个块扩展了Mage_Adminhtml_Block_Widget_Grid_Container类,它本身会将此模块中的网格块添加为其子节点.

并且包含Grid.php,我通过在overriden _prepareColumns方法中打印出一些内容来验证.

我在这里错过了什么?

这些是Grid.php文件的内容

class Book_Brands_Block_Adminhtml_Brands_Grid extends Mage_Adminhtml_Block_Widget_Grid {

    public function __construct() {
        parent::__construct();
        $this->setId('brandsGrid');
        $this->setDefaultSort('brands_id');
        $this->setDefaultDir('ASC');
        $this->setSaveParametersInSession(true);
    }

    protected function _prepareCollection() {       
        $collection = Mage::getModel('brands/brands')->getCollection();
        $this->setCollection($collection);
        return parent::_prepareCollection();
    }

    protected function _prepareColumns() {

        $this->addColumn('brands_id', array(
            'header' => Mage::helper('brands')->__('ID'),
            'align'  =>'right',
            'width'  => '50px',
            'index'  => 'brands_id',
        ));
        $this->addColumn('title', array(
            'header'=> Mage::helper('brands')->__('Title'),
            'align' =>'left',
            'index' => 'title',
        ));
        $this->addColumn('status', array(
            'header'=> Mage::helper('brands')->__('Status'),
            'align' => 'left',
            'width' => '80px',
            'index' => 'status',
            'type'  => 'options', …
Run Code Online (Sandbox Code Playgroud)

magento

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

使用soap和wsdl的web服务不能运行php

我正在尝试使用wdsl和soap创建一个Web服务.服务器将用php编写.

截至目前,我通过向soap服务器对象添加一个函数来尝试一些事情.我的要求是这个函数应该采用一个关联数组.现在它返回一个字符串,但它现在只是试用,并且还将根据要求返回一个数组.

为了将一个assoc数组作为输入,我在wsdl中定义了一个complexType.以下是代码

<types>
  <xsd:schema 
  targetNamespace="http://projects.kp/test/webservice/StoreService.wsdl"
  xmlns="http://www.w3.org/1999/XMLSchema/">
     <xsd:complexType name="store">
        <xsd:element name="name" type="xsd:string" /> 
        <xsd:element name="subdomain" type="xsd:string" /> 
     </xsd:complexType>
  </xsd:schema>
</types>  
<message name="StoreRequest">
  <part name="store" type="tns:store"/>
</message>
<message name="StoreResponse">
  <part name="url" type="xsd:string"/>
</message>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中运行soap客户端文件时,它会出现以下错误.

Fatal error: Uncaught SoapFault exception: 
[WSDL] SOAP-ERROR: Parsing Schema: unexpected in complexType
Run Code Online (Sandbox Code Playgroud)

如果我使用字符串数据类型而不是complexType,它可以正常工作.我想我还没有理解complexTypes是如何工作的,所以我无法调试它.

此外,我想知道如果客户端使用其他语言(例如.NET)编码,则数组作为请求和响应类型是否有效.

(现在我在ubuntu桌面上的虚拟主机上进行测试,服务器和客户端在同一个虚拟主机上,并且都是用php编写的)

谢谢

php soap wsdl web-services

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

在symfony中使用propel的WHERE IN子句

如何使用propel创建以下查询?

UPDATE tablename SET status = 1 WHERE id IN (1,2,3,4)
Run Code Online (Sandbox Code Playgroud)

php mysql propel symfony1

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