jDeveloper ... не может получить развернутый jar для работы (отсутствует библиотека?) - PullRequest
0 голосов
/ 19 марта 2019

Очевидно, что проблема с профилем развертывания, но я собираюсь выбросить свою рабочую станцию ​​через окно.

Включает в себя:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.xml.stream.XMLStreamException;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.xpath.XPathExpressionException;
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

(есть и другие, но они не актуальны)

private List<List<Object>> getPayloads(String url, String user, String pw) throws ClassNotFoundException, SQLException,
                                                                            NoClassDefFoundError {
    List<List<Object>> mismoPayloads = new ArrayList<List<Object>>();
    String DB_URL = url;
    String USER = user;
    String PASS = pw;
    Connection conn = null;
    Statement stmt = null;
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    stmt = conn.createStatement();
    String sql;
    sql = "select fha_case_number, loan_number, replace(replace(to_char(score_dt),'/','-'),':',' ') as score_dt, aus, aq.total_mismo_payload.total_request_response from X04180.total_mismo_archive aq";
    ResultSet rs = stmt.executeQuery(sql);
    while (rs.next()) {
        //Retrieve by column name
        List<String> thisRow = new ArrayList<String>();
        String xmlContent = rs.getSQLXML("total_mismo_payload.total_request_response").getString();
        String loanNumber = rs.getString("loan_number");
        String caseNumber = rs.getString("fha_case_number");
        String ausID = rs.getString("aus");
        String scoreDate = rs.getString("score_dt");
        thisRow.add(scoreDate + "_" + caseNumber + "_" + loanNumber + "_" + ausID + ".xml");
        thisRow.add(xmlContent);
        mismoPayloads.add((List) thisRow);
    }
    rs.close();
    stmt.close();
    conn.close();
    return mismoPayloads;
}

У меня есть это в манифесте:

Manifest-Version: 1.0
Class-Path: . .. 
 ./lib/ojdbc.policy 
 ./lib/ojdbc8.jar 
 ./lib/ons.jar 
 ./lib/oraclepki.jar 
 ./lib/orai18n.jar 
 ./lib/osdt_cert.jar 
 ./lib/osdt_core.jar 
 ./lib/simplefan.jar 
 ./lib/ucp.jar 
 ./lib/xdb6.jar 
 ./lib/oracle.xdk/oraclexsql.jar
 ./lib/oracle.xdk/oxquery-ee.jar
 ./lib/oracle.xdk/oxquery-xmlbeans-interop.jar
 ./lib/oracle.xdk/oxquery.jar
 ./lib/oracle.xdk/xml.jar
 ./lib/oracle.xdk/xmlmesg.jar
 ./lib/oracle.xdk/xmlparserv2.jar
 ./lib/oracle.xdk/xmlparserv2_jaxp_services.jar
 ./lib/oracle.xdk/xmlparserv2_sans_jaxp_services.jar
 ./lib/oracle.xdk/xqjapi.jar
 ./lib/oracle.xdk/xquery.jar
 ./lib/oracle.xdk/xsqlserializers.jar
 ./lib/oracle.xdk/xsu12.jar
Main-Class: f17.ProcessPayload

Все эти банки существуют в этой папке "lib". Папка "lib" находится в той же папке, что и исполняемый файл jar. Я проверил, что драйвер (ojdbc8.jar) загружается (я могу изменить сообщение об ошибке, переместив его.

Единственное, о чем я могу думать, - это то, что jDeveloper загружает какую-то другую зависимость, но не удается развернуть ее в банке, но я не вижу, что это такое.

Проект отлично работает из набора инструментов, но ошибки как таковые при запуске в виде исполняемого файла JAR.

oracle/xml/binxml/BinXMLMetadataProvider
[oracle.jdbc.driver.NamedTypeAccessor$XMLFactory.createXML(NamedTypeAccessor.java:115)
 oracle.jdbc.driver.NamedTypeAccessor.getOracleObject(NamedTypeAccessor.java:233)
 oracle.jdbc.driver.NamedTypeAccessor.getSQLXML(NamedTypeAccessor.java:332)
 oracle.jdbc.driver.GeneratedStatement.getSQLXML(GeneratedStatement.java:278)
 oracle.jdbc.driver.GeneratedScrollableResultSet.getSQLXML(GeneratedScrollableResultSet.java:359)
 oracle.jdbc.driver.GeneratedResultSet.getSQLXML(GeneratedResultSet.java:590)
 f17.ProcessPayload.getPayloads(ProcessPayload.java:195)
 f17.ProcessPayload.main(ProcessPayload.java:115)]

Я должен упомянуть, что в приведенной ниже строке указана ошибка:

String xmlContent = rs.getSQLXML("total_mismo_payload.total_request_response").getString();

1 Ответ

0 голосов
/ 21 марта 2019

Я воссоздал проект в Eclipse и развернул рабочую банку без драмы. Это проблема jDeveloper.

Моя проблема решена, но jDeveloper явно имеет проблемы. Если кто-то хочет присоединиться к различиям в развертывании из Eclipse и развертывании из jDeveloper, это может быть полезно для других.

Я использую jDeveloper только потому, что мы занимаемся Oracle Fusion.

...