2013-02-06 5 views
2

Oracle SQL 개발자에게 Java 코드를로드하려고합니다. 자바로드에서, 내 하드 디스크 (NetBeans 대상 폴더에서)에서 Java 소스를 선택하고 아래 오류가 발생합니다. 어떤 도움이 필요합니까? 여기 Oracle SQL Developer가 Java 오류를로드했습니다.

picture

는 코드입니다. 그것은 넷빈즈에서 잘 작동 내가 된 .java 파일 sqldeveloper의 왼쪽 창 자바 옵션을 사용하여 자바 클래스를로드하는 동안 나도 같은 문제가되었다

package c2_01_signhelloworld; 

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.security.GeneralSecurityException; 
import java.security.KeyStore; 
import java.security.PrivateKey; 
import java.security.Security; 
import java.security.cert.Certificate; 

import org.bouncycastle.jce.provider.BouncyCastleProvider; 

import com.itextpdf.text.DocumentException; 
import com.itextpdf.text.Rectangle; 
import com.itextpdf.text.pdf.PdfReader; 
import com.itextpdf.text.pdf.PdfSignatureAppearance; 
import com.itextpdf.text.pdf.PdfStamper; 
import com.itextpdf.text.pdf.security.BouncyCastleDigest; 
import com.itextpdf.text.pdf.security.DigestAlgorithms; 
import com.itextpdf.text.pdf.security.ExternalDigest; 
import com.itextpdf.text.pdf.security.ExternalSignature; 
import com.itextpdf.text.pdf.security.MakeSignature; 
import com.itextpdf.text.pdf.security.MakeSignature.CryptoStandard; 
import com.itextpdf.text.pdf.security.PrivateKeySignature; 

public class C2_01_SignHelloWorld { 

    public static final String KEYSTORE = "C:/Users/kranjcevicb/Documents/itext/2/ks"; 
    public static final char[] PASSWORD = "password".toCharArray(); 
    public static final String SRC = "C:/Users/kranjcevicb/Documents/itext/2/unsigned1.pdf"; 
    public static final String DEST = "C:/Users/kranjcevicb/Documents/itext/2/unsigned1_signed.pdf"; 

    public void sign(String src, String dest, 
      Certificate[] chain, 
      PrivateKey pk, String digestAlgorithm, String provider, 
      CryptoStandard subfilter, 
      String reason, String location) 
        throws GeneralSecurityException, IOException, DocumentException { 
     // Creating the reader and the stamper 
     PdfReader reader = new PdfReader(src); 
     FileOutputStream os = new FileOutputStream(dest); 
     PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0'); 
     // Creating the appearance 
     PdfSignatureAppearance appearance = stamper.getSignatureAppearance(); 
     appearance.setReason(reason); 
     appearance.setLocation(location); 
     appearance.setVisibleSignature(new Rectangle(36, 748, 144, 780), 1, "sig"); 
     // Creating the signature 
     ExternalDigest digest = new BouncyCastleDigest(); 
     ExternalSignature signature = new PrivateKeySignature(pk, digestAlgorithm, provider); 
     MakeSignature.signDetached(appearance, digest, signature, chain, null, null, null, 0, subfilter); 
    } 

    public static void main(String[] args) throws GeneralSecurityException, IOException, DocumentException { 
     BouncyCastleProvider provider = new BouncyCastleProvider(); 
     Security.addProvider(provider); 
     KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); 
     ks.load(new FileInputStream(KEYSTORE), PASSWORD); 
     String alias = (String)ks.aliases().nextElement(); 
     PrivateKey pk = (PrivateKey) ks.getKey(alias, PASSWORD); 
     Certificate[] chain = ks.getCertificateChain(alias); 
     C2_01_SignHelloWorld app = new C2_01_SignHelloWorld(); 
     app.sign(SRC, String.format(DEST, 1), chain, pk, DigestAlgorithms.SHA256, provider.getName(), CryptoStandard.CMS, "Test 1", "Ghent"); 
     app.sign(SRC, String.format(DEST, 2), chain, pk, DigestAlgorithms.SHA512, provider.getName(), CryptoStandard.CMS, "Test 2", "Ghent"); 
     app.sign(SRC, String.format(DEST, 3), chain, pk, DigestAlgorithms.SHA256, provider.getName(), CryptoStandard.CADES, "Test 3", "Ghent"); 
     app.sign(SRC, String.format(DEST, 4), chain, pk, DigestAlgorithms.RIPEMD160, provider.getName(), CryptoStandard.CADES, "Test 4", "Ghent"); 
    } 
} 
+0

코드 및 오류 스택 추적을 코드 형식으로 제공하십시오. 이미지 이상으로 도움이 될 것입니다. 항상 노력을 기울여야합니다. –

+0

코드가 netbeans에서 컴파일되지만 sqldeveloper에서 컴파일되지 않으면 sqldeveloper가 소스를 컴파일 할 때 보는 classpath를 확인하고자 할 수 있습니다. 또한 소스 및 컴파일 오류 자체가 귀하의 질문에 대답하는 데 큰 도움이 될 것입니다. – A4L

답변

0

에 SQL Developer에서로드하려고 해요. 그러나 내가 아래 코드를 사용하여 자바를로드하려고 시도했을 때, 그것은 작동했습니다.

CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "JavaClassName" AS 
public class JavaClassName{ 
    public static String MyFunction(){ 
     .....do something...... 
     return "output"; 
    } 
    } 
관련 문제