Erro -> failed to load external entity

2,239 views
Skip to first unread message

Paulo Henrique Demori

unread,
Feb 1, 2011, 7:56:36 PM2/1/11
to NFePHP
Não entendo...

Fazendo testes em 2 locais (127.0.0.1 = Win7 e Online = Hospedagem
Kinghost na plataforma Linux)

Eu consigo:
Assina = OK nos 2
Valida = Erro no Online e OK = localhost
Envia = Erro nos 2

No valida do Online, o mesmo da esse erro no valida.

Erro 1818: Internal error: xmlSchemaIDCRegisterMatchers, Could not
find an augmented IDC item for an IDC definition. Erro 1818: Internal
error: xmlSchemaValidateElem, calling xmlSchemaValidateElemDecl().
Erro 1818: Internal error: xmlSchemaDocWalk, calling
xmlSchemaValidateElem().


Após isso eu copiei o arquivo da pasta rejeitadas para a validadas e
mandei enviar...

Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O
warning : failed to load external entity "?WSDL" in /home/agilecti/www/
mfr/b2stoknfephp/libs/ToolsNFePHP.class.php on line 2233
tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
load from '?WSDL' : failed to load external entity "?WSDL" )

Ele não localiza a URL conforme a classe. Pq?
localhost quando eu mando imprimir $this->aURL['NfeRecepcao']['URL']
ele sai https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRecepcao2.asmx
Online sai em branco... ;/

Só que localhost ele da o erro no envio:

Array ( [0] => 17110102899023000105550020000000171640893664-nfe.xml )
tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
load from 'https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/
Nferecepcao/NFeRecepcao2.asmx?WSDL' : failed to load external entity
"https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/
NFeRecepcao2.asmx?WSDL" )

Se eu tentar abrir o url https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRecepcao2.asmx?WSDL
no navegador, aparece o XML OK! para os navegadores Morizza Firefox e
Internet Explorer:


Se eu modificar no config.php o estado de origem para ‘SVRS’ ou ‘RS’
ou seja, utilizar os webservers do rio grande do sul, o erro
continua...

Na versão localhost
Array ( [0] => 17110102899023000105550020000000171640893664-nfe.xml )
tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
load from 'https://homologacao.nfe.sefaz.rs.gov.br/ws/NfeRecepcao/
NfeRecepcao.asmx ?WSDL' : failed to load external entity "https://
homologacao.nfe.sefaz.rs.gov.br/ws/NfeRecepcao/NfeRecepcao.asmx%20?
WSDL" )

Na versão online (kinghost)
Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O
warning : failed to load external entity "?WSDL" in /home/agilecti/www/
mfr/b2stoknfephp/libs/ToolsNFePHP.class.php on line 2233
tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
load from '?WSDL' : failed to load external entity "?WSDL" )

Edwin Schissato

unread,
Feb 1, 2011, 8:28:11 PM2/1/11
to nfe...@googlegroups.com
Esse problema "failed to load external entity" pelo que entendi é má configuração nos webservices que acaba não conseguindo carregar o WSDL corretamente, para contornar esse problema eu fiz download do wsdl e em vez de utilizar homologacao.nfe.sefaz.rs.gov.br/ws/NfeRecepcao/NfeRecepcao.asmx?WSDL na conexão vc coloca o caminho para o WSDL que foi feito download.


Paulo Henrique Demori

unread,
Feb 2, 2011, 7:30:17 AM2/2/11
to NFePHP
Certo, mas quando informo o caminho ele faz o seguinte:

[0] => Function ("nfeRecepcaoLote2") is not a valid method for this
service

que no sendSOAP tem:
case 'NfeRecepcao':
//echo"Descobrindo os serviços";
//var_dump ( $client->__getFunctions());
$retorno = $client->nfeRecepcaoLote2($nfeDadosMsg);

dai eu modifiquei para -> $retorno = $client-
>nfeRecepcaoLote($nfeDadosMsg);

Retornou:
[0] => Forbidden


O mesmo para os 2 ambientes (local e online)

On 1 fev, 22:28, Edwin Schissato <edwins...@gmail.com> wrote:
> Esse problema "failed to load external entity" pelo que entendi é má
> configuração nos webservices que acaba não conseguindo carregar o WSDL
> corretamente, para contornar esse problema eu fiz download do wsdl e em vez
> de utilizar homologacao.nfe.sefaz.rs.gov.br/ws/NfeRecepcao/NfeRecepcao.asmx<http://homologacao.nfe.sefaz.rs.gov.br/ws/NfeRecepcao/NfeRecepcao.asm...>?WSDL
> na conexão vc coloca o caminho para o WSDL que foi feito download.
>
> Em 1 de fevereiro de 2011 22:56, Paulo Henrique Demori <phdem...@hotmail.com
>
> > escreveu:
> > Não entendo...
>
> > Fazendo testes em 2 locais (127.0.0.1 = Win7 e Online = Hospedagem
> > Kinghost na plataforma Linux)
>
> > Eu consigo:
> > Assina = OK nos 2
> > Valida = Erro no Online e OK = localhost
> > Envia = Erro nos 2
>
> > No valida do Online, o mesmo da esse erro no valida.
>
> > Erro 1818: Internal error: xmlSchemaIDCRegisterMatchers, Could not
> > find an augmented IDC item for an IDC definition. Erro 1818: Internal
> > error: xmlSchemaValidateElem, calling xmlSchemaValidateElemDecl().
> > Erro 1818: Internal error: xmlSchemaDocWalk, calling
> > xmlSchemaValidateElem().
>
> > Após isso eu copiei o arquivo da pasta rejeitadas para a validadas e
> > mandei enviar...
>
> > Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O
> > warning : failed to load external entity "?WSDL" in /home/agilecti/www/
> > mfr/b2stoknfephp/libs/ToolsNFePHP.class.php on line 2233
> > tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
> > load from '?WSDL' : failed to load external entity "?WSDL" )
>
> > Ele não localiza a URL conforme a classe. Pq?
> > localhost quando eu mando imprimir $this->aURL['NfeRecepcao']['URL']
> > ele sai
> >https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRece...
> > Online sai em branco... ;/
>
> > Só que localhost ele da o erro no envio:
>
> > Array ( [0] => 17110102899023000105550020000000171640893664-nfe.xml )
> > tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
> > load from 'https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/
> > Nferecepcao/NFeRecepcao2.asmx?WSDL' : failed to load external entity
> > "https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/
> > NFeRecepcao2.asmx?WSDL" )
>
> > Se eu tentar abrir o url
> >https://homologacao.nfe.sefazvirtual.rs.gov.br/ws/Nferecepcao/NFeRece...
> > no navegador, aparece o XML OK! para os navegadores Morizza Firefox e
> > Internet Explorer:
>
> > Se eu modificar no config.php o estado de origem para ‘SVRS’ ou ‘RS’
> > ou seja, utilizar os webservers do rio grande do sul, o erro
> > continua...
>
> > Na versão localhost
> > Array ( [0] => 17110102899023000105550020000000171640893664-nfe.xml )
> > tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
> > load from 'https://homologacao.nfe.sefaz.rs.gov.br/ws/NfeRecepcao/
> > NfeRecepcao.asmx ?WSDL' : failed to load external entity "https://
> > homologacao.nfe.sefaz.rs.gov.br/ws/NfeRecepcao/NfeRecepcao.asmx%20?
> > WSDL" )
>
> > Na versão online (kinghost)
> > Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O
> > warning : failed to load external entity "?WSDL" in /home/agilecti/www/
> > mfr/b2stoknfephp/libs/ToolsNFePHP.class.php on line 2233
> > tools 1417 retornoArray ( [0] => SOAP-ERROR: Parsing WSDL: Couldn't
> > load from '?WSDL' : failed to load external entity "?WSDL" )
>
> > --
> > Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
> > Para Postar: nfe...@googlegroups.com
> > Para Sair do Grupo: nfephp+un...@googlegroups.com<nfephp%2Bunsu...@googlegroups.com>

Paulo Henrique Demori

unread,
Feb 2, 2011, 7:41:17 AM2/2/11
to NFePHP
Atualizei com o XML errado, quando coloquei o certo ele fica
carregando o tempo todo e não sai o retorno como se tivesse travado.

Edwin Schissato

unread,
Feb 2, 2011, 7:49:27 AM2/2/11
to nfe...@googlegroups.com
Tem certeza que o WSDL que vc colocou é o do serviço nfeRecepcaoLote2?


                print "<br><br>##########################<br><br>";
               
                print "<br><pre>";

                var_dump($client->__getFunctions());

                print "</pre><br>";

                print "<br><pre>";


                var_dump($client->__getTypes());

                print "</pre><br>"

Coloca esse código depois de instanciar o SoapClient e passa o resutado, é pra aparecer nfeRecepcaoLote2 getFunctions.

Paulo Henrique Demori

unread,
Feb 2, 2011, 8:07:15 AM2/2/11
to NFePHP
##########################


array(1) {
[0]=>
string(65) "nfeRecepcaoLote2Result nfeRecepcaoLote2(nfeDadosMsg
$nfeDadosMsg)"
}



array(3) {
[0]=>
string(37) "struct nfeDadosMsg {
any;
}"
[1]=>
string(48) "struct nfeRecepcaoLote2Result {
any;
}"
[2]=>
string(56) "struct nfeCabecMsg {
string cUF;
string versaoDados;
}"
}


No online ele roda, local fica sempre carregando....
Dai o online sai -> [0] => Forbidden


Obs.

em sendSOAP, onde tem:
$client = new SoapClient($url,
array(
'encoding' => 'UTF-8',
'local_cert' => $this->certsDir .
'cert_sparkfix_11_05_2011a.pem' ,
'soap_version' => SOAP_1_2,
'trace' => true,
'exceptions' => true,
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL,
'verifypeer' => false,
'verifyhost' => false,
)
);

na frente do url tinha '?WSDL' eu removi pois salvei o arquivo, fiz
certo?

On 2 fev, 09:49, Edwin Schissato <edwins...@gmail.com> wrote:
> Tem certeza que o WSDL que vc colocou é o do serviço nfeRecepcaoLote2?
>
>                 print "<br><br>##########################<br><br>";
>
>                 print "<br><pre>";
>
>                 var_dump($client->__getFunctions());
>
>                 print "</pre><br>";
>
>                 print "<br><pre>";
>
>                 var_dump($client->__getTypes());
>
>                 print "</pre><br>"
>
> Coloca esse código depois de instanciar o SoapClient e passa o resutado, é
> pra aparecer nfeRecepcaoLote2 getFunctions.
>
> Em 2 de fevereiro de 2011 10:41, Paulo Henrique Demori <phdem...@hotmail.com
> > <nfephp%2Bunsu...@googlegroups.com<nfephp%252Buns...@googlegroups.com>

Edwin Schissato

unread,
Feb 2, 2011, 8:09:51 AM2/2/11
to nfe...@googlegroups.com
tá certo sim, acontecia comigo de ficar carregando quando não utilizava o WSDL localmente.

Aparentemente ta tudo certo no seu código.

Paulo Henrique Demori

unread,
Feb 2, 2011, 8:36:55 AM2/2/11
to NFePHP
Pq Forbidden? (Proibido)

On 2 fev, 10:09, Edwin Schissato <edwins...@gmail.com> wrote:
> tá certo sim, acontecia comigo de ficar carregando quando não utilizava o
> WSDL localmente.
>
> Aparentemente ta tudo certo no seu código.
>
> Em 2 de fevereiro de 2011 11:07, Paulo Henrique Demori <phdem...@hotmail.com
> > > > <nfephp%2Bunsu...@googlegroups.com<nfephp%252Buns...@googlegroups.com>
> > <nfephp%252Buns...@googlegroups.com<nfephp%25252Bun...@googlegroups.com>

Roberto Leite Machado

unread,
Feb 2, 2011, 3:56:01 PM2/2/11
to nfe...@googlegroups.com
Paulo;

Esse erro por ser devido a versão do ssl em uso pelos sistemas, já
aconteceu anteriormente, havia conflito na troca de chaves então acusa
proibido. Verifique a versão do ssl usado.

Roberto

Paulo Henrique Demori

unread,
Feb 3, 2011, 6:48:00 AM2/3/11
to NFePHP
Depois de uma dica do Ferreira, eu converti o arquivo *.pfx para *.pem

Mas como eu utilizo o PEM?
Pq se eu colocar na config o arquivo .pem ele da erro de acesso.

On 2 fev, 17:56, Roberto Leite Machado
> ...
>
> mais »
Reply all
Reply to author
Forward
0 new messages