2017-03-14 3 views
2

ich ein Java Bean Projekt haben, ich brauche Jai zu verwenden, so dass ich hinzufügen, eine Maven depedendencyhinzufügen Jai als Wildfly Modul

<dependency> 
    <groupId>com.github.jai-imageio</groupId> 
    <artifactId>jai-imageio-core</artifactId> 
    <version>1.3.1</version> 
</dependency> 

Ich versuche neues Modul hinzufügen, um Wildfly 9 wie

Modul. xml

<?xml version="1.0" encoding="UTF-8"?> 

<module xmlns="urn:jboss:module:1.3" name="com.github.jaiimageio"> 
    <resources> 
     <resource-root path="jai-imageio-core-1.3.1.jar"/> 
    </resources> 
</module> 

Dann füge ich ein Glas aus mvnrepo Und setzen jar + module.xml in

wildfly-9.0.2.Final \ Module \ system \ Schichten \ base \ com \ Github \ jaiimageio \ main

Da ist in meinem Java-Projekt

jboss-Deployment-structure.xml

<jboss-deployment-structure> 
    <deployment> 
     <dependencies> 
      <module name="org.jboss.ejb3"/> 
      <module name="org.jboss.ws.api"/> 
      <module name="org.apache.cxf"/> 
      <module name="org.jboss.ws.cxf.jbossws-cxf-server"/> 
      <module name="com.github.jaiimageio"/> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

Aber wenn ich versuche, meine Java Bean zu nennen habe ich eine Ausnahme bekam

Caused by: java.util.NoSuchElementException 
    at javax.imageio.spi.FilterIterator.next(ServiceRegistry.java:836) 
    at javax.imageio.ImageIO$ImageWriterIterator.next(ImageIO.java:842) 
    at javax.imageio.ImageIO$ImageWriterIterator.next(ImageIO.java:827) 
    at ru.shop.createFile.CreateFileBean.write_tiff(CreateFileBean.java:541) 
    at ru.shop.createFile.CreateFileBean.testAdd(CreateFileBean.java:77) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437) 
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82) 
    at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93) 
    at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437) 
    at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73) 
    at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 
    at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.component.interceptors.NonPooledEJBComponentInstanceAssociatingInterceptor.processInvocation(NonPooledEJBComponentInstanceAssociatingInterceptor.java:59) 
    at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) 
    at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275) 
    ... 79 more 

Mein Code:

private void write_tiff() throws IOException 
    { 
     RenderedImage image=javax.imageio.ImageIO.read(new File("C:\\users\\user\\Desktop\\examples\\srts.jpg")); 
     RenderedImage image1=javax.imageio.ImageIO.read(new File("C:\\users\\user\\Desktop\\examples\\passport.jpg")); 

     Iterator<ImageWriter> iterator=ImageIO.getImageWritersByFormatName("TIFF"); 
     System.out.println(iterator.hasNext()); 

     ImageWriter writer=iterator.next(); 
    } 

ImageIO.getImageWritersByFormatName ("TIFF") gibt null zurück.

Aber wenn ich diese Methode von Java-Anwendung aufrufen, nicht in Java-Bean, ist alles in Ordnung.

Ich versuchte modulierename zu com.github.jai-imagio, aber nichts chandes.

Kann mir jemand helfen?

+0

Mögliches Duplikat [Ausgabe in getImageWritersByFormatName für Tiff. Image Writer erhalten] (http://stackoverflow.com/questions/22523644/issue-in-gettimagewritersbyformatname-for-tiff-getting-image-writer). Beachte besonders die 2. Antwort, bezüglich Tomcat –

+0

Danke Jon, aber ich habe schon versucht, scanForPlugins() aufzurufen, kein Ergebnis. Auch ich füge mein jar ext-Ordner in wildfly hinzu, aber leider auch ohne resutl. –

+0

Haben Sie das 'jai-imagio-core-1.3.1.jar' zu Ihrem' lib/ext'-Verzeichnis hinzugefügt? Ich denke, das war die erste Antwort. –

Antwort

1

ich dieses Problem

-Code ohne Zusatz von Gläsern zu ext von Jvm lösen kann:

ImageIO.scanForPlugins(); 
ByteArrayOutputStream output_stream=new ByteArrayOutputStream();    
try 
{ 
    ImageOutputStream output = ImageIO.createImageOutputStream(output_stream); 
    ImageWriter writer = new TIFFImageWriterSpi().createWriterInstance(); 
    writer.setOutput(output); 
    writer.prepareWriteSequence(null); 
    writeToSequence(new IIOImage(ImageIO.read(new ByteArrayInputStream(bytes)),null,null),null); 
    writer.endWriteSequence(); 
    writer.dispose();   
    output.flush(); 
    output.close(); 

pom Abhängigkeit:

<dependency> 
    <groupId>com.sun.media</groupId> 
    <artifactId>jai_imageio</artifactId> 
    <version>1.2-pre-dr-b04</version> 
</dependency> 

module.xml (Wildfly \ Module \ system \ Schichten \ base \ com \ sun \ medien \ imageio \ main)

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="com.sun.media.imageio"> 
    <resources> 
     <resource-root path="jai_imageio-1.2-pre-dr-b04.jar"/> 
     <resource-root path="clibwrapper_jiio-1.2-pre-dr-b04.jar"/> 
    </resources> 

    <dependencies> 
     <module name="javax.api"/> 
    </dependencies> 
</module>